假设我有一个字典列表,我想创建新的列表列表,按“价格”的值对字典进行分组:
dicts = [
{ "name": "item1", "price": 10 },
{ "name": "item2", "price": 5 },
{ "name": "item3", "price": 10 },
{ "name": "item4", "price": 12 },
{ "name": "item5", "price": 12 },
{ "name": "item6", "price": 5 }
]
应该创建:
grouped_dicts = [
[{ "name": "item1", "price": 10 },
{ "name": "item3", "price": 10 }],
[{ "name": "item2", "price": 5 },
{ "name": "item6", "price": 5 }],
[{ "name": "item4", "price": 12 },
{ "name": "item5", "price": 12 }]
]
有什么好的方法可以做到这一点吗?
谢谢
最佳答案
作为 answer above 的替代方案,以下是无需额外导入即可执行此操作的方法:
d = {}
for item in dicts:
d.setdefault(item['price'], []).append(item)
list(d.values())
输出:
[[{'name': 'item1', 'price': 10}, {'name': 'item3', 'price': 10}],
[{'name': 'item2', 'price': 5}, {'name': 'item6', 'price': 5}],
[{'name': 'item4', 'price': 12}, {'name': 'item5', 'price': 12}]]
关于python - 按值对 python 字典列表进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58139480/