Count How Many Times A Part Of A Key Appears In A Dictionary Python
I have the following dictionary and i want to count how many times keys appear, dictionary is very big. a = { (1,2):3, (1,3):5, (2,1):6 } and I want this result 1: 3 times 2: 2 ti
Solution 1:
Use itertools.chain
and a collections.Counter
:
collections.Counter(itertools.chain(*a.keys()))
Alternatively:
collections.Counter(itertools.chain.from_iterable(a.keys()))
Solution 2:
>>>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})
Solution 3:
Use itertools
and collections.defaultdict
In [43]: a={(1,2):3,(1,3):5,(2,1):6}
In [44]: counts = collections.defaultdict(int)
In [45]: for k in itertools.chain.from_iterable(a.keys()):
....: counts[k] += 1
....:
In [46]: for k in counts:
print k, ": %d times" %counts[k]
....:
1 : 3 times
2 : 2 times
3 : 1 times
Solution 4:
First, this is not a code-writing service. Try writing some first, and then asking a question about it.
Second, as a freebie, in Python:
import collections
s = collections.defaultdict(int)
for j, k in a.keys():
s[j] += 1
s[k] += 1for x in s.keys():
print x + ": " + s[x] + " times"
Solution 5:
from collections import Counter
items = Counter(val[2] forvalin dic.values())
Hope that sorts it.
Post a Comment for "Count How Many Times A Part Of A Key Appears In A Dictionary Python"