Найти частоту слова в списке в соответствии с первым индексированным элементом - PullRequest
0 голосов
/ 06 июня 2019

Допустим, у меня есть такой список

my_list = [(1, 'A'), (1, 'A'), (1, 'A'), (1, 'B'), (20, 'BB'), 
  (20, 'BB'), (100, 'CC'), (100, 'CC'), (100, 'CC')]

Теперь я хочу написать код на Python 3, чтобы он возвращал частоту второго элемента элемента в соответствии с первым элементом. например, я ожидаю, что вывод напечатать что-то вроде ниже:

1: 3 (A), 1 : 1 (B), 20: 2(BB), 100: 3(CC)

Извините за плохой английский. Любая помощь будет оценена.

Ответы [ 2 ]

1 голос
/ 06 июня 2019

Используйте метод Counter из модуля Коллекции.

from collections import Counter
my_list = [(1, 'A'), (1, 'A'), (1, 'A'), (1, 'B'), (20, 'BB'), 
  (20, 'BB'), (100, 'CC'), (100, 'CC'), (100, 'CC')]
print(Counter(my_list))

Вывод:

Counter({(1, 'A'): 3, (100, 'CC'): 3, (20, 'BB'): 2, (1, 'B'): 1})
0 голосов
/ 06 июня 2019

Вы также можете использовать Dict вместо импорта коллекций. Поскольку элементы вашего списка являются кортежами, их можно использовать в качестве ключей словаря.

Вот как вы можете это сделать:

list = [(1, 'A'), (1, 'A'), (1, 'A'), (1, 'B'), (20, 'BB'),  (20, 'BB'), (100, 'CC'), (100, 'CC'), (100, 'CC')]

dict = {}

for item in list:
    if item in dict:
        dict[item] += 1
    else:
        dict[item] = 1
print(dict)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...