在python的字典列表中改组键和值

时间:2019-03-23 03:08:20

标签: python

将数据作为带有字典的列表给出,我将如何返回一个新的字典列表,其中键“ color”中的值成为新键,而键“ id”中的关联值成为该键列表的元素新价值观?示例:

{{1}}

1 个答案:

答案 0 :(得分:3)

您可以使用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]})

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

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