Collections и объектом Counter. 🧮 Объект
Counter позволяет нам подсчитывать количество каждого элемента и возвращает словарь с результатами:
# импортируем библиотеку
from collections import Counter
# создаем список со значениями
lst = ['apple', 'banana', 'orange', 'apple', 'apple', 'orange']
# создаем объект
cnt = Counter(lst)
print(cnt)
Output: Counter({'apple': 3, 'orange': 2, 'banana': 1})
# для вывода только 2 самых распространенных элементов
print(cnt.most_common(2))
Output: [('apple', 3), ('orange', 2)]
👩🏭Но как насчет производительности? Давайте сравним метод Counter с решением на Python, используя timeit:d = {}
for elem in lst:
d[elem] = d.get(elem, 0) + 1
print(d)
Output: {'apple': 3, 'banana': 1, 'orange': 2}
🔎 Результат мы получим одинаковый, но в плане скорости выполнения Counter работает в разы быстрее, чем даже самое эффективное решение на чистом Python. ⚖️ Подробное сравнение на 60 000 элементах в комментариях!
#python