gpt4 book ai didi

Python - 对列表字典中的值进行排序

转载 作者:太空宇宙 更新时间:2023-11-04 07:49:51 26 4
gpt4 key购买 nike

一组 13 个传感器传输每 5 分钟读取一次的数字数据。为了捕获这些值,我使用了列表字典:

Sensors = {
'Sensor1':[10.52,12.45,15.70],
'Sensor5':[12.32,22.80,30.42],
'Sensor3':[4.7,3.4,2.1],
'Sensor8':[2.34,4.28,7.10],
'Sensor4':[10.64,14.76,4.25],
'Sensor2':[3.21,7.88,9.22],
'Sensor6':[4.11,9.32,2.70],
'Sensor9':[11.45,14.72,8.30],
'Sensor7':[6.10,3.98,10.66],
'Sensor10':[7.22,8.67,10.99],
'Sensor13':[1.19,4.65,0.87],
'Sensor12':[2.10,5.46,3.21],
'Sensor11':[5.80,8.22,14.39]
}

我需要对这个列表进行排序,以便具有正增长的传感器出现在顶部。为了实现这个目标,我创建了另一个字典 DeltaValues,其中包含传感器的名称以及捕获的最后一个值和第一个值之间的差异:

 DeltaValues={}
for x, y in Sensors.items():
if len(y) > 1:
DeltaValues[x] = format(y[-1] - y[0],'.2f')
else:
DeltaValues[x] = format(y[0],'.2f')

我用这个语法来排序:

sorted_d = {k: v for k, v in sorted(DeltaValues.items(), key=lambda x: x[1])}

但结果不是我所期望的:

print(sorted_d)

{'Sensor13': '-0.32',
'Sensor6': '-1.41',
'Sensor3': '-2.60',
'Sensor9': '-3.15',
'Sensor4': '-6.39',
'Sensor12': '1.11',
'Sensor5': '18.10',
'Sensor10': '3.77',
'Sensor7': '4.56',
'Sensor8': '4.76',
'Sensor1': '5.18',
'Sensor2': '6.01',
'Sensor11': '8.59'}

最佳答案

Dicts 不保证按放入的顺序返回值。

考虑有序字典。 https://docs.python.org/3/library/collections.html#collections.OrderedDict

关于Python - 对列表字典中的值进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56605602/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com