gpt4 book ai didi

python - 类似 SQL 的 MAX 和 GROUP BY 在字典列表上

转载 作者:行者123 更新时间:2023-11-28 19:19:22 25 4
gpt4 key购买 nike

我有一个结构的字典列表

list_of_dicts = [  
{'apples': 123, 'bananas': '556685', 'date': some_date},
{'apples': 99, 'bananas': '556685', 'date': some_date},
{'apples': 99, 'bananas': '556685', 'date': some_other_date},
{'apples': 88, 'bananas': '2345566', 'date': some_other_date}]

加上其他几个不需要排序的字段。

我已经按苹果和日期排序了,但我正在思考如何通过 SQL 查询获取每天苹果最多的字典的列表
SELECT max(apples),从 TABLE where location in (location names list) group by date
得到类似的东西

[ {'apples': 123, 'bananas': '556685' 'date': some_date}, {'apples': 99, 'bananas': '556685' 'date': some_other_date}]

我已经尝试过 b = max(temp_top, key = lambda f: (max(f['apples']), f['date'])) 但这给了我全部苹果最多的字典,而我每天都在努力获取最多的苹果。

最佳答案

一直往前走,没有火箭科学:

#group by date
unique_dates={v['date'] for v in data}

#calculate the aggregation function for each group
date_maxapples={d,max(v['apples'] for v in data if v['date']==d) for d in unique_dates}

这可能不是算法上最快的方法(遍历列表很多次)。然而,它既简单又可读,而且不是很次优,这是 Python 的做事方式。它实际上可能比具有即时 max 计算的更复杂的循环更快(就像在 C 中所做的那样),因为使用的大多数函数都是内置函数(参见 Faster alternatives to numpy.argmax/argmin which is slow 的示例这个悖论)。

关于python - 类似 SQL 的 MAX 和 GROUP BY 在字典列表上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28971704/

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