TECH4GEEKS-LOGO-HEADER
Oxary Magazine
$10 – $15 / Week

Cómo usar el contador de Python desde el módulo Colecciones

En este tutorial, aprenderá a usar el objeto de contador del módulo de colección de Python.

Cuando trabaje con secuencias largas en Python, por ejemplo, listas o cadenas de Python, a veces necesitará almacenar los elementos que aparecen en la secuencia y la cantidad de veces que aparecen.

Un diccionario de Python es una estructura de datos incorporada adecuada para tales aplicaciones. Sin embargo, la clase Counter de Python del módulo de colecciones puede simplificar esto al construir un contador, que es un diccionario de elementos y su número en la secuencia.

En los próximos minutos, aprenderá lo siguiente:

  • Usando el objeto contador de Python
  • Cree un diccionario de Python para almacenar valores de conteo de elementos en un iterable
  • Reescriba el diccionario usando el contador de Python con sintaxis simplificada
  • Realice operaciones como actualizar y restar elementos, encontrar la intersección entre dos objetos contadores
  • Obtén los artículos más frecuentes del mostrador usando el método most_common()

¡Empecemos!

Contenido del sitio

Módulo de colecciones de Python y clase de contador

A menudo utilizará un diccionario de Python para almacenar los elementos y su recuento en un iterable. Los elementos y el recuento se almacenan como claves y valores, respectivamente.

Dado que la clase Counter es parte del módulo de colecciones incorporado de Python, puede importarla a su secuencia de comandos de Python de esta manera:

from collections import Counter

Después de importar la clase Counter como se mencionó, puede crear una instancia de un objeto contador como se muestra:

<counter_object> = Counter(iterable)

Aquí:

  • iterable es cualquier iterable de Python válido, como una lista, una cadena o una tupla de Python.
  • Los elementos del iterable deben ser hashable.

Ahora que sabemos cómo usar Counter para crear objetos de contador a partir de cualquier iterable de Python, comencemos a codificar.

Los ejemplos utilizados en este tutorial se pueden encontrar en este GitHub esencial.

Cómo crear un objeto de contador a partir de Python iterables

Crear contador de objetos desde Python Iterables

Vamos a crear una cadena de Python, digamos, ‘renacimiento’ y llamémosla palabra.

>>> word = "renaissance"

Nuestro objetivo es crear un diccionario en el que cada letra de la cadena de palabras esté asociada con el número de veces que aparece en la cadena. Un enfoque es usar bucles como se muestra:

>>> letter_count = {}
>>> for letter in word:
...     if letter not in letter_count:
...         letter_count[letter] = 0
...     letter_count[letter] += 1
...
>>> letter_count
{'r': 1, 'e': 2, 'n': 2, 'a': 2, 'i': 1, 's': 2, 'c': 1}

Analicemos lo que hace el fragmento de código anterior:

  • Inicializa letter_count en un diccionario de Python vacío.
  • Bucle en la cadena de palabras.
  • Comprueba si la letra está presente en el diccionario letter_count.
  • Si la letra no está presente, la suma con un valor de 0 y luego incrementa el valor en 1.
  • Por cada aparición de una letra en una palabra, el valor correspondiente a la letra se incrementa en 1.
  • Esto continúa hasta que hacemos un ciclo a través de toda la cadena.
  ¿Qué es el secuestro de sesión y cómo prevenirlo?

Construimos el diccionario letter_count – por nosotros mismos – usando el ciclo for para recorrer la palabra en la cadena.

Ahora usemos la clase Counter del módulo de colecciones. Solo tenemos que pasar la cadena de palabras a Counter() para obtener letter_count sin tener que iterar sobre iterables.

>>> from collections import Counter
>>> letter_count = Counter(word)
>>> letter_count
Counter({'e': 2, 'n': 2, 'a': 2, 's': 2, 'r': 1, 'i': 1, 'c': 1})

El objeto contador también es un diccionario de Python. Podemos usar la función integrada isinstance() para verificar esto:

>>> isinstance(letter_count,dict)
True

Como se ve, isinstance(letter_count, dict) devuelve True, lo que indica que el objeto de contador letter_count es una instancia de dictado de la clase de Python.

Edición del objeto contador

Hasta ahora hemos aprendido cómo crear objetos de contador a partir de cadenas de Python.

También puede modificar objetos de contador actualizándolos con elementos de otro iterable o sustrayendo otro iterable de ellos.

Actualizar un contador con elementos de otro iterable

Inicialicemos otra cadena another_word:

>>> another_word = "effervescence"

Supongamos que queremos actualizar el objeto de contador contador_letras con los elementos de la cadena otra_palabra.

Podemos usar el método update() en el objeto contador letter_count.

>>> letter_count.update(another_word)
>>> letter_count
Counter({'e': 7, 'n': 3, 's': 3, 'c': 3, 'r': 2, 'a': 2, 'f': 2, 'i': 1, 'v': 1})

En el resultado, vemos que el objeto contador se actualizó para incluir también las letras y su número de ocurrencias de otra_palabra.

Restar elementos de otro iterable

Ahora vamos a restar el valor de another_word del objeto letter_count. Para hacer esto, podemos usar el método restar(). El uso de .sustraer() resta los valores correspondientes a los elementos de de .

  Cómo usar AirDrop en tu iPhone, iPad o Mac

Vamos a restar otra_palabra de número_de_letras.

>>> letter_count.subtract(another_word)
>>> letter_count
Counter({'e': 2, 'n': 2, 'a': 2, 's': 2, 'r': 1, 'i': 1, 'c': 1, 'f': 0, 'v': 0})

Vemos que se han restado los valores correspondientes a las letras en otra_palabra, pero no se eliminan las teclas ‘f’ y ‘v’ añadidas. Ahora corresponden a un valor de 0.

Nota: Aquí pasamos otra_palabra, una cadena de Python, a la llamada al método subtract(). También podemos pasar un objeto contador de Python u otro objeto iterable.

Intersección entre dos objetos de contador en Python

Intersección-Entre-Dos-Contadores-Objetos-en-Python

A veces es posible que desee encontrar el intersección entre dos objetos de contador de Python para identificar claves comunes a ambos.

Vamos a crear un objeto de contador, digamos, letter_count_2, a partir de la cadena another_word ‘efervescencia’.

>>> another_word = "effervescence"
>>> letter_count_2 = Counter(another_word)
>>> letter_count_2
Counter({'e': 5, 'f': 2, 'c': 2, 'r': 1, 'v': 1, 's': 1, 'n': 1})

Podemos usar el operador simple & para encontrar la intersección entre letter_count y letter_count_2.

>>> letter_count & letter_count_2
Counter({'e': 2, 'r': 1, 'n': 1, 's': 1, 'c': 1})

Fíjate cómo obtienes las claves y el número de ocurrencias comunes a ambas palabras. ‘renacimiento’ y ‘efervescencia’ contienen dos ocurrencias de ‘e’ y una ocurrencia de ‘r’, ‘n’, ‘s’ y ‘c’ en común.

Encuentre los artículos más comunes usando most_common

Otra operación común en el objeto de contador de Python es encontrar los elementos más frecuentes.

Para obtener los k elementos de contador más comunes, puede usar el método most_common() en el objeto de contador. Aquí llamamos a most_common() en letter_count para encontrar las tres letras más comunes.

>>> letter_count.most_common(3)
[('e', 2), ('n', 2), ('a', 2)]

Vemos que las letras ‘e’, ​​’n’ y ‘a’ aparecen dos veces en la palabra ‘renacimiento’.

  Aprenda sobre lingüística con estos 6 identificadores de idiomas en línea

Esto es especialmente útil si el contador contiene una gran cantidad de entradas y desea trabajar con las teclas más comunes.

Conclusión

Aquí hay una descripción general rápida de lo que aprendimos en el tutorial:

  • La clase Counter del módulo de colecciones incorporado de Python se puede usar para obtener un diccionario de valores de conteo de todos los elementos en cualquier iterable. Debe asegurarse de que todos los elementos en el iterable sean hashable.
  • Puede actualizar el contenido de un objeto de contador de Python con el contenido de otro objeto de contador o cualquier otro iterable usando el método update() con la sintaxis: counter1.update(counter2). Tenga en cuenta que puede usar cualquier iterable en lugar de counter2.
  • Si desea eliminar el contenido de uno de los contadores iterables actualizados, puede usar el método subtract(): counter1.subtract(counter2).
  • Para encontrar los elementos comunes entre dos objetos contadores, puede utilizar el & operador. Dados dos contadores counter1 y counter2, counter1 & counter2 devuelve la intersección de estos dos objetos contadores.
  • Para obtener los k elementos más frecuentes en un contador, puede usar el método most_common(). counter.most_common(k) devuelve los k elementos más comunes y los recuentos respectivos.

A continuación, aprenda a usar el dictado predeterminado, otra clase en el módulo de colecciones. Puede usar el dictado predeterminado en lugar de un diccionario estándar de Python para manejar las claves que faltan.

Fuente

Etiquetas

Comparte en:

Ultimos Post

Categorias

Lorem ipsum dolor sit amet, consectetur adipiscing elit eiusmod tempor ncididunt ut labore et dolore magna

Deja una respuesta

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore