Подсчет частоты элементов в Python с повышенной эффективностью
Подсчет появления элементов в списке — обычная задача программирования. В этом вопросе рассматривается более эффективный подход к этой проблеме в Python.
Представленный исходный код, хотя и функционален, включает в себя двойную итерацию по списку, что приводит к неоптимальной производительности. Ключевая задача заключается в поиске Pythonic-способа подсчета вхождений элементов без избыточных проходов по списку.
Решение заключается в использовании класса Counter из модуля коллекций. Программа Counter, специально разработанная для подсчета частот, предлагает краткий и эффективный способ достижения желаемого результата. Следующий код демонстрирует его использование:
from collections import Counter
words = "apple banana apple strawberry banana lemon"
Counter(words.split())
Этот фрагмент кода разбивает входную строку на отдельные слова и передает полученный список в Counter. В результате получается объект, похожий на словарь, где ключи представляют уникальные слова, а значения представляют соответствующие им счетчики. В этом примере выходные данные будут такими:
Counter({'apple': 2, 'banana': 2, 'strawberry': 1, 'lemon': 1})
Класс Counter внутренне использует хеш-таблицу для хранения данных, обеспечивая операции поиска и вставки с постоянным временем. Такой подход исключает необходимость второй итерации и значительно повышает производительность подсчета частоты элементов.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3