di中元组中的计数项

2024-05-15 05:49:36 发布

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

我想知道是否有更好的方法来计算dict中的项目:

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)

Tags: 项目方法fromimportcounter解决方案item次数
2条回答

可以使用以下嵌套循环:

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}

我希望这能解决你的问题。你知道吗

相关问题 更多 >

    热门问题