我正在尝试建立一个循环,将循环读取功率读数列表,并根据当晚记录的最低温度将其分为两个单独的列表(检查空调的使用情况)。但是我似乎无法对列表进行排序。
Pwr_Usd = [0, 9, 13, 11, 13, 8.5, 12.5, 14, 10, 8.5, 7.5, 21, 7, 8, 12, 17, 6, 12, 11.25, 12.75, 8]
Temp_Min = [13.8, 14.1, 13.7, 16.9]
Ovr_Usd = PwrUsd[1::4] # Overnight Usage netween 12am and 6am
## Air Conditioning
AirCon = []
## Standby Power
StbyPwr = []
for i in Ovr_Usd:
if i > 16 in Temp_Min:
AirCon.append(i)
else:
StbyPwr.append(i)
print(AirCon)
print(StbyPwr)
在一个完美的世界中,我最终会得到两个列表
Aircon = [12]
stbyPwr = [9, 8.5, 8.5, 8]
但我愿意接受任何建议,让我根据功率列表运行温度列表,并在夜晚天气太冷而无法使用空调电源的情况下进行排序。值得注意的是,所有列表都随时间顺序组织。 Temp_min超过一周,每个Pwr_Usd读数相距6小时,因此Ovr_Usd为什么只选择第4个值进行比较。
答案 0 :(得分:0)
要在python中对列表进行排序,请尝试使用python的.sort列表方法:
pwr_usd = [0, 9, 13, 11, 13, 8.5, 12.5, 14, 10, 8.5, 7.5, 21, 7, 8, 12, 17, 6, 12, 11.25, 12.75, 8]
temp_min = [13.8, 14.1, 13.7, 16.9]
pwr_usd.sort()
temp_min.sort()
print(pwr_usd)
print(temp_min)
,输出将是:
[0, 6, 7, 7.5, 8, 8, 8.5, 8.5, 9, 10, 11, 11.25, 12, 12, 12.5, 12.75, 13, 13, 14, 17, 21]
[13.7, 13.8, 14.1, 16.9]
,然后使用列表理解或良好的for循环进行所需的分隔和分类。如果是列表理解:
air_con = [i for i in pwr_usd if i > 16 and i in temp_min]
尽管这在我运行它时会返回一个空列表,这是因为pwr_usd
中的值实际上都不在temp_min
中(它们必须完全相同)
旁注:在命名变量时保持惯例是一种好习惯。例如使用PwrUsd
pwr_usd