«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу эффективно подсчитывать появление элементов в Python?

Как я могу эффективно подсчитывать появление элементов в Python?

Опубликовано 7 ноября 2024 г.
Просматривать:438

How Can I Efficiently Count Item Occurrences in Python?

Подсчет частоты элементов в 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