Python – Itertools.contar()

Python Itertools es una excelente manera de crear iteradores complejos que ayudan a obtener un tiempo de ejecución más rápido y a escribir código eficiente en memoria. Itertoolsnos proporciona funciones para crear secuencias infinitas y itertools.count()es una de esas funciones y hace exactamente lo que parece, ¡cuenta!

Nota: Para obtener más información, consulte Python Itertools

Itertools.contar()

itertools.count()generalmente se usan map()para generar puntos de datos consecutivos, lo cual es útil cuando se trabaja con datos. También se puede usar zippara agregar secuencias pasando count como parámetro.

Sintaxis: itertools.count(inicio=0, paso=1)

Parámetros:
inicio: Inicio de la secuencia (predeterminado en 0)
paso: Diferencia entre números consecutivos (predeterminado en 1)

Devoluciones: devuelve un objeto de recuento cuyo método .__next__() devuelve valores consecutivos.

Obtengamos una comprensión profunda de esta poderosa espada usando algunos programas simples de Python.

Ejemplo #1: La creación de una lista de números espaciados uniformemente
itertools.count() se puede usar para generar secuencias recursivas infinitas fácilmente. Echemos un vistazo

# Program for creating a list of
# even and odd list of integers
# using count()
  
  
from itertools import count
  
# creates a count iterator object
iterator =(count(start = 0, step = 2))
  
# prints a odd list of integers
print("Even list:", 
      list(next(iterator) for _ in range(5)))
  
# creates a count iterator object
iterator = (count(start = 1, step = 2))
  
# prints a odd list of integers
print("Odd list:", 
      list(next(iterator) for _ in range(5)))

Producción :

Even list: [0, 2, 4, 6, 8]
Odd list: [1, 3, 5, 7, 9]

De la misma forma, también podemos generar una secuencia de números negativos y de coma flotante. Para una mayor precisión de los números de coma flotante, use (start + step * i for i in count()).

Ejemplo n.º 2: Emular enumerate()usandoitertools.count()
Como se mencionó anteriormente, count()se puede usar con zip(). ¡Veamos cómo podemos usarlo para imitar la funcionalidad de enumerate()sin siquiera saber la longitud de la lista de antemano!

# Program to emulate enumerate() 
# using count()
  
# list containing some strings
my_list =["Geeks", "for", "Geeks"]
  
# count spits out integers for 
# each value in my list
for i in zip(count(start = 1, 
                   step = 1), my_list):
      
    # prints tuple in an enumerated 
    # format
    print(i)

Producción :

(1, 'Geeks')
(2, 'for')
(3, 'Geeks')

Nota: Se debe tener especial cuidado durante el uso itertools.count(), ya que es fácil quedarse atascado en un bucle infinito.

El siguiente código funciona de la misma manera que, por lo while True:tanto, se debe especificar la condición de terminación adecuada.

for i in count(start=0, step=2): 
    print(i)

Publicación traducida automáticamente

Artículo escrito por nishkarsh146 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *