Подсчет частоты с помощью генератора в питоне - PullRequest
0 голосов
/ 06 декабря 2018

Я построил генератор, который выдает около 6 миллионов словарей, и я хочу подсчитать частоту значения в словаре.

Например, каждый словарь выглядит ниже, и я хочу подсчитать значениеключа 'state'

dict1 = {'name':'Jane','state':'Alabama'}
dict2 = {'name':'Joe','state':'California'}

и я хочу получить результат

{'Alabama':1,'California:1}

Я знаю, что могу добавить значение 'state' в список и использовать from collections import Counter,но я не хочу сохранять значения в списке, потому что генератор дает около 6 миллионов словарей.

Есть ли способ подсчета частоты в этом случае?Или был бы полезен любой другой эффективный для памяти способ.

Пока, я думаю, возможно, один из способов - вернуть словарь, в котором ключ - это состояние, а значение - это число, используя цикл for?

1 Ответ

0 голосов
/ 06 декабря 2018

Это должно быть просто.Предполагая, что каждое полученное значение содержит ключ state:

result = Counter(d["state"] for d in my_generator())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...