распечатайте все элементы списка и сообщите, как часто они встречаются python - PullRequest
1 голос
/ 05 августа 2020

У меня огромный список чисел и диапазонов. Я хочу, чтобы моя программа просматривала их все и фильтровала, как часто встречается каждый элемент. затем он должен распечатать Categories и сообщить, как часто встречается каждая категория.

Я видел несколько способов решения этой проблемы, но все они подходят, запрашивая конкретный c номер или элемент в своем списке. Затем программа сможет определить, как часто эта модель присутствует в списке.

list_of_cars = [["honda","blue"],["nissan","yellow"],["honda","blue"],["bmw","grey"]]
sorted(list_of_cars)

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

Результат должен выглядеть так:

print(sorted_list_of_cars) 

[["honda","blue" 2],["nissan","yellow"  1],["bmw,grey" 1]]

1 Ответ

2 голосов
/ 05 августа 2020

Один из возможных подходов - преобразовать элементы списка в кортежи (хешируемый тип), а затем использовать python Counter (проверено на python 3.8.1):

from collections import Counter


list_of_cars = [["honda","blue"],["nissan","yellow"],["honda","blue"],["bmw","grey"]]
list_of_tuples = [tuple(item) for item in list_of_cars]
counter = Counter(list_of_tuples)
print(counter)

Результат будет be Counter({('honda', 'blue'): 2, ('nissan', 'yellow'): 1, ('bmw', 'grey'): 1})

Также можно позвонить counter.most_common(), результат будет [(('honda', 'blue'), 2), (('nissan', 'yellow'), 1), (('bmw', 'grey'), 1)]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...