在python中无序排列字典列表中的键和值

2024-04-16 23:13:24 发布

您现在位置:Python中文网/ 问答频道 /正文

给定一个包含字典的列表,我如何返回一个新的字典列表,其中来自“color”键的值成为新的键,而来自“id”键的关联值成为新值列表的元素?示例:

data = [{'id': 123, 'color': 'red'}, {'id': 242, 'color': 'blue'},{'id': 329, 'color': 'red'},]

return [{'red': [123, 329]}, {'blue': [242]}]

Tags: id元素示例列表datareturn字典blue
1条回答
网友
1楼 · 发布于 2024-04-16 23:13:24

您可以使用defaultdict来实现:

>>> from collections import defaultdict

>>> ret = defaultdict(list)
>>> for d in data:
...     ret[d['color']].append(d['id'])
... 
>>> ret
defaultdict(<class 'list'>, {'red': [123, 329], 'blue': [242]})

我不认为您需要为每个键返回dict,因为根据定义,键在您的情况下是唯一的,但是如果您需要这样的键,您可以使用如下列表:

>>> [{key: value} for key, value in ret.items()]
[{'red': [123, 329]}, {'blue': [242]}]

相关问题 更多 >