gpt4 book ai didi

python - 如何基于字典键的相同值创建列表

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

我正在尝试将包含相同日期的字典连接在一起,并创建一个温度值列表,这些公共(public)日期必须包含这些温度值,然后提取这些值的最大值和最小值。

我有这个:

data = 
[{'temp_min': 51.75, 'date': '2019-05-31', 'temp_max': 52.25},
{'temp_min': 52.5, 'date': '2019-05-31', 'temp_max': 52.87},
{'temp_min': 53.29, 'date': '2019-05-31', 'temp_max': 53.55},
{'temp_min': 68.19, 'date': '2019-06-01', 'temp_max': 75.19},
{'temp_min': 61.45, 'date': '2019-06-01', 'temp_max': 68.45},
{'temp_min': 56.77, 'date': '2019-06-01', 'temp_max': 59.77}]

并且想要这个:

[{'date':'2019:05-31', 'temp_min':[51.75, 52.5, 53.29], 'temp_max': 
[52.25, 52.87, 53.55]}, {'date':'2019:06-01','temp_min':[68.19,
61.45, 56.77], 'temp_max':[75.19, 68.45, 59.77]}]

我正在尝试使用 itertools groupby 来执行此操作,但是当我尝试如上所述创建输出时遇到了问题。如果对此有不同的方法,也欢迎。我不确定如何将分组重新放入字典并保留唯一日期。

def get_temp(temp):
return temp['date']

grouping = itertools.groupby(data, get_temp)

for key, group in grouping:
print(key)
for d in group:
print(d['temp_max'])

最佳答案

遍历 group 以排序 mins 和 maxs 以分隔字典的键:

def get_temp(temp):
return temp['date']

lst = []
for key, group in itertools.groupby(data, get_temp):
groups = list(group)
d = {}
d['date'] = key
d['temp_min'] = [x['temp_min'] for x in groups]
d['temp_max'] = [x['temp_max'] for x in groups]
lst.append(d)

print(lst)

关于python - 如何基于字典键的相同值创建列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56412904/

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