Python在列表中添加具有相同键的字典值

时间:2014-12-02 03:52:25

标签: python list dictionary count

我刚刚在不久前拿起了python。

以下示例

我在列表中有一本字典

myword = [{'a': 2},{'b':3},{'c':4},{'a':1}]

我需要将其更改为

以下的输出
[{'a':3} , {'b':3} , {'c':4}]

有没有办法可以将价值加在一起?我尝试使用计数器,但它打印出每个字典。

我用Counter做了什么:

for i in range(1,4,1):
      text = myword[i]
      Print Counter(text)

输出

Counter({'a': 2})
Counter({'b': 3})
Counter({'c': 4})
Counter({'a': 1})

我已阅读下面的链接,但他们比较的是2个字典。

Is there a better way to compare dictionary values

谢谢!

1 个答案:

答案 0 :(得分:2)

将字典合并到一个字典(Counter)中,并将它们拆分。

>>> from collections import Counter
>>> myword = [{'a': 2}, {'b':3}, {'c':4}, {'a':1}]
>>> c = Counter()
>>> for d in myword:
...     c.update(d)
...
>>> [{key: value} for key, value in c.items()]
[{'a': 3}, {'c': 4}, {'b': 3}]

>>> [{key: value} for key, value in sorted(c.items())]
[{'a': 3}, {'b': 3}, {'c': 4}]