"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puedo contar eficientemente la aparición de elementos en Python?

¿Cómo puedo contar eficientemente la aparición de elementos en Python?

Publicado el 2024-11-07
Navegar:844

How Can I Efficiently Count Item Occurrences in Python?

Recuento de frecuencia de elementos en Python con eficiencia mejorada

Contar la aparición de elementos dentro de una lista es una tarea de programación común. Esta pregunta explora un enfoque más eficiente para este problema en Python.

El código inicial presentado, aunque funcional, implica iterar la lista dos veces, lo que lleva a un rendimiento subóptimo. El desafío clave radica en encontrar una forma Pythonic de contar las apariciones de elementos sin pasos redundantes a través de la lista.

La solución radica en utilizar la clase Counter del módulo de colecciones. Diseñado específicamente para el conteo de frecuencia, Counter ofrece una manera concisa y eficiente de lograr el resultado deseado. El siguiente código demuestra su uso:

from collections import Counter

words = "apple banana apple strawberry banana lemon"
Counter(words.split())

Este fragmento de código divide la cadena de entrada en palabras individuales y pasa la lista resultante a Counter. El resultado es un objeto similar a un diccionario donde las claves representan palabras únicas y los valores representan sus recuentos correspondientes. En este ejemplo, el resultado sería:

Counter({'apple': 2, 'banana': 2, 'strawberry': 1, 'lemon': 1})

La clase Counter emplea internamente una tabla hash para almacenar datos, proporcionando operaciones de búsqueda e inserción en tiempo constante. Este enfoque elimina la necesidad de una segunda iteración y mejora significativamente el rendimiento del recuento de frecuencia de los elementos.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3