collections.Counter()
instance를 사용하여 감사 :
이 당신의 입력 목록에서 하나 이상의 키 사전이 제대로 계산되도록
from collections import Counter
from itertools import chain
counts = Counter(chain.from_iterable(e.keys() for e in d))
.
데모 :
>>> from collections import Counter
>>> from itertools import chain
>>> d = [{"abc":"movies"}, {"abc": "sports"}, {"abc": "music"}, {"xyz": "music"}, {"pqr":"music"}, {"pqr":"movies"},{"pqr":"sports"}, {"pqr":"news"}, {"pqr":"sports"}]
>>> Counter(chain.from_iterable(e.keys() for e in d))Counter({'pqr': 5, 'abc': 3, 'xyz': 1})
또는 입력 사전에 여러 키
:
>>> d = [{"abc":"movies", 'xyz': 'music', 'pqr': 'music'}, {"abc": "sports", 'pqr': 'movies'}, {"abc": "music", 'pqr': 'sports'}, {"pqr":"news"}, {"pqr":"sports"}]
>>> Counter(chain.from_iterable(e.keys() for e in d)) Counter({'pqr': 5, 'abc': 3, 'xyz': 1})
Counter()
은 분류 역의 요소와 그 수를 나열 .most_common()
method 등의 추가 도움이 기능을 가지고 있습니다 주문 :
for key, count in counts.most_common():
print '{}: {}'.format(key, count)
# prints
# 5: pqr
# 3: abc
# 1: xyz
를? 아니면 잘못 재생됩니까? – thegrinner
그건 사전이 아니에요. 그게 기껏해야 사전 목록입니다. 하나의 키/값 쌍만 포함되어 있습니다. 정말요? 어떤 종류의 데이터 구조입니까? 그리고 저는 실제로 그것이''{abc ":"영화 "}라고 생각합니다, 맞습니까? –
@TimPietzcker 그게 전부입니다. 표현의 실수로 죄송합니다 – user1189851