计算密钥的一部分出现在字典python中的次数

Mik*_*e B 0 python dictionary tuples key list

我有以下字典,我想计算键出现的次数,字典是非常大的.

a = { (1,2):3, (1,3):5, (2,1):6 }
Run Code Online (Sandbox Code Playgroud)

我想要这个结果

1: 3 times
2: 2 times
3: 1 time
Run Code Online (Sandbox Code Playgroud)

mgi*_*son 9

使用itertools.chaincollections.Counter:

collections.Counter(itertools.chain(*a.keys()))
Run Code Online (Sandbox Code Playgroud)

或者:

collections.Counter(itertools.chain.from_iterable(a.keys()))
Run Code Online (Sandbox Code Playgroud)

  • 用'collections.Counter`打败我的方法!希望我已经想到了这一点.此外,`itertools.chain.from_iterable`将不再使用`*` (2认同)

Joh*_*ooy 5

>>> from collections import Counter
>>> a = { (1,2):3, (1,3):5, (2,1):6 }
>>> 
>>> Counter(j for k in a for j in k)
Counter({1: 3, 2: 2, 3: 1})
Run Code Online (Sandbox Code Playgroud)