Количество элементов Python в словаре списков

У меня есть словарь списков, для которых я хочу добавить значение в конкретный список … У меня есть следующий словарь списков.

d = {'a': [4,'Adam', 2], 'b': [3,'John', 4], 'c': [4,'Adam', 3], 'd': [4,'Bill' 3], 'e': [4,'Bob'], 'f': [4, 'Joe'], 'g': [4, 'Bill']} 

Я хочу, по сути, подсчитать количество имен и вернуться. Так что в этом случае это будет что-то вроде

 Adam: 2 Bill: 2 John: 1 Bob: 1 Joe: 1 

Чтобы все было проще, все имена являются вторым элементом в списке или

 for i in d: d[i][1] 

Любая идея, как я могу сделать это эффективно? Я сейчас просто проверяю вручную каждое имя и подсчитываю и возвращаю его = /

Заранее спасибо!

2 Solutions collect form web for “Количество элементов Python в словаре списков”

collections.Counter всегда хорош для подсчета вещей.

 >>> from collections import Counter >>> d = {'a': [4,'Adam', 2], 'b': [3,'John', 4], 'c': [4,'Adam', 3], 'd': [4,'Bill', 3], 'e': [4,'Bob'], 'f': [4, 'Joe'], 'g': [4, 'Bill']} >>> # create a list of only the values you want to count, >>> # and pass to Counter() >>> c = Counter([values[1] for values in d.itervalues()]) >>> c Counter({'Adam': 2, 'Bill': 2, 'Bob': 1, 'John': 1, 'Joe': 1}) 
 d = {'key': 'value'} temp_dict = {} for key, values in d.items(): if values[1] in temp_dict: temp_dict[values[1]] = temp_dict[values[1]] + 1 else: temp_dict[values[1]] = 1 

Этот код длиннее предыдущего ответа, но это просто еще один способ получить те же результаты. В любом случае, temp_dict будет хранить имена в виде ключей и значений как количество раз, когда оно появляется.

  • Python: элегантный способ удаления пустых списков из словаря Python
  • сумма квадратов в списке в одной строке?
  • число / числа для списка с помощью ввода ()
  • python, сортировка списка с помощью ключа, который является подстрокой каждого элемента
  • репликационные элементы в списке
  • Извлеките два самых высоких элемента из списка, содержащего 100 000 целых чисел
  • Преобразование пользовательского ввода в имя списка
  • Добавить целое число в начало списка в Python
  • Python - лучший язык программирования в мире.