当前位置: 代码迷 >> python >> 计算字典中元组中的项目
  详细解决方案

计算字典中元组中的项目

热度:96   发布时间:2023-07-14 09:53:12.0

我想知道是否有更好的解决方案来像这样计算字典中的项目:

D={('a','b','c'):4,('b','c'):2}

dict键是项的元组,值是元组的出现。 如何计算项目的发生。 诸如func(D)类的示例应返回{'a':4,'b':6,'c':6}

基准解决方案:

from collections import Counter
def func(D):
    f=lambda item:list(item[0])*item[1]
    L=[]
    for item in D.items():
        L+=f(item)
    return Counter(L)

您可以使用以下嵌套循环:

s = {}
for t, c in D.items():
    for i in t:
        s[i] = s.get(i, 0) + c

s将变为:

{'a': 4, 'b': 6, 'c': 6}
>>> import collections as ct
>>> D={('a','b','c'):4,('b','c'):2,}
>>> listOfElements = []
>>> for key in D:
...   listOfElements += list(key)*D[key]
...
>>> dict(ct.Counter(listOfElements))
{'a': 4, 'b': 6, 'c': 6}

我希望这能解决您的问题。

  相关解决方案