pre_true = [] for i in range(96): value = (predict_day1[i] * 0.4) + (predict_day2[i] * 0.2) + (data_pre_conversion[i] * 0.4) pre_true.append(round(value, 2)) 代码优化
时间: 2024-01-29 15:04:48 浏览: 22
可以将循环的长度改为使用len()函数获取,这样即使数据长度变化也不需要修改代码。同时可以使用列表推导式来简化代码,如下所示:
```
pre_true = [round((predict_day1[i] * 0.4) + (predict_day2[i] * 0.2) + (data_pre_conversion[i] * 0.4), 2) for i in range(len(predict_day1))]
```
这样的代码更加简洁易读,同时也提高了代码的可维护性。
相关问题
predict_sum = [] for i in range(5): if r2_index[i] != ((len(data_history_conversion)) - 1): predict_day = dataset_history[96 * (r2_index[i] + 1):96 * (r2_index[i] + 2)] else: predict_day = dataset_history[96 * (r2_index[i - 1] + 1):96 * (r2_index[i - 1] + 2)] predict_sum.append(predict_day) 代码优化
可以将if-else语句中的重复代码提取出来,可以使用一个变量来存储 r2_index[i] 的值,这样代码就可以减少重复部分。优化后的代码如下:
```
predict_sum = []
for i in range(5):
next_index = r2_index[i] + 1
if next_index != len(data_history_conversion):
predict_day = dataset_history[96 * next_index:96 * (next_index + 1)]
else:
last_index = r2_index[i - 1] + 1
predict_day = dataset_history[96 * last_index:96 * (last_index + 1)]
predict_sum.append(predict_day)
```
for i in range(5): if r2_index[i] != ((len(data_history_conversion)) - 1): predict_day = dataset_history[96 * (r2_index[i] + 1):96 * (r2_index[i] + 2)] else: predict_day = dataset_history[96 * (r2_index[i - 1] + 1):96 * (r2_index[i - 1] + 2)] predict_sum.append(predict_day) 代码优化
可以将代码优化成如下形式:
```
for i in range(5):
if r2_index[i] != len(data_history_conversion) - 1:
predict_day = dataset_history[96 * (r2_index[i] + 1):96 * (r2_index[i] + 2)]
else:
predict_day = dataset_history[96 * (r2_index[i - 1] + 1):96 * (r2_index[i - 1] + 2)]
predict_sum.append(predict_day)
```
主要是将if语句的条件判断部分中的括号去掉,这样更加简洁清晰。