Itertools es uno de los módulos más útiles que proporciona Python. Sus funciones facilitan el trabajo con listas y matrices. Ya sea que necesite todas las permutaciones de los valores en una matriz o si desea agrupar caracteres de una cadena, Itertools puede ayudarlo.

Escribir el código para casos tan comunes puede ser tedioso y propenso a errores. Por lo tanto, los desarrolladores han creado bibliotecas para hacer todo esto por usted. Puede utilizar estas funciones importando Itertools. En este artículo, aprenderá sobre el módulo Itertools en Python y sus funciones.

El oficial Pitón La documentación explica que Itertools contiene código para construir iteradores. Este módulo proporciona funciones rápidas y eficientes para trabajar con listas y matrices.

Antes de usar este módulo, debe importarlo usando la siguiente sintaxis:

importar itertools

Hay tres tipos diferentes de iteradores presentes en este módulo.

  1. Iteradores infinitos
  2. Iteradores combinatorios
  3. Terminar iteradores

Iteradores infinitos

instagram viewer

Los iteradores infinitos pueden ejecutar un bucle infinitamente. Estas funciones se ejecutan con mayor frecuencia utilizando un en bucle. Hay tres iteradores infinitos.

1. contar (inicio, paso)

los contar() La función toma dos parámetros: el comienzo y el paso. El ciclo comienza desde el valor inicial y devuelve valores que se incrementan por paso, que por defecto es 1. Considere el ejemplo que se da a continuación: el ciclo comienza desde 2 y agregará 2 cada vez. El bucle se rompe cuando el valor de I se convierte en 10.

para i en itertools.count (2,2):
si i == 10:
rotura
demás:
print (i, end = "")

Producción:

2 4 6 8 

2. repetir (número, veces para repetir)

los repetir() La función acepta dos parámetros. El primero es un valor que la función produce repetidamente. El segundo parámetro es el número de veces que debe repetirse el número. Si no especifica el segundo parámetro, el ciclo se ejecutará infinitamente.

para i en itertools.repeat (2,5):
print (i, end = "")

Producción:

2 2 2 2 2 

3. ciclo (entrada)

los ciclo() La función itera a través de la entrada e imprime elementos individuales en un orden determinado. Cuando llega al final de su entrada, ciclo se reinicia desde el principio.

c = 0
var = "12345"
para i en itertools.cycle (var):
si c == 12:
rotura
demás:
c = c + 1
print (i, end = "")

Producción:

1 2 3 4 5 1 2 3 4 5 1 2

Iteradores combinatorios

Los iteradores combinatorios proporcionan funciones para realizar permutaciones, combinaciones y productos cartesianos.

1. producto (entrada)

los producto() La función calcula el producto cartesiano de la entrada especificada. Tiene un parámetro de repetición que calcula el producto cartesiano de un iterador consigo mismo. Es un parámetro opcional.

matriz = [1,2,3]
imprimir (lista (itertools.product (matriz, repetir = 2)))
cadena = "ABC"
imprimir (lista (itertools.product (cadena, "XYZ")))

Producción:

Ejemplo 1 [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
Ejemplo 2 [('A', 'X'), ('A', 'Y'), ('A', 'Z'), ('B', 'X'), ('B', 'Y '), (' B ',' Z '), (' C ',' X '), (' C ',' Y '), (' C ',' Z ')]

2. permutaciones (entrada, tamaño)

Esta función devuelve una tupla de todas las permutaciones del iterable dado. Acepta dos parámetros: el iterable y el tamaño del grupo. Si no se especifica el tamaño del grupo, formará grupos de la misma longitud que el iterable en sí.

arr = [1,2,3,4]
imprimir (lista (itertools.permutations (arr, 2)))

Producción:

[(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)]

Relacionado: Funciones de Python que debe conocer

3. combinaciones (entrada, longitud)

los combinaciones () La función ayuda a calcular las combinaciones del iterador dado. Tenga en cuenta que esta función mantiene el orden de los elementos de su entrada. Tiempo permutaciones incluye valores que difieren solo por orden, combinaciones produce valores únicos.

arr = [1,2,3,4]
imprimir (lista (itertools.combinations (arr, 3)))

Producción:

[(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]

Terminar iteradores

Los iteradores de terminación producen una salida basada en las condiciones dadas a la entrada. Puede comprenderlo mejor a partir de algunas funciones de ejemplo.

1. acumular (entrada, operador)

los acumular() La función acepta dos argumentos: el iterable y un operador. Produce salida aplicando el operador a un total acumulado y a cada elemento de entrada a su vez. El operador es un argumento opcional. Si no lo pasa, esta función realizará la suma.

operador de importación
arr = [1,2,3,4]
imprimir (lista (itertools.accumulate (arr)))
imprimir (lista (itertools.accumulate (arr, operator.sub)))

Producción:

[1, 3, 6, 10]
[1, -1, -4, -8]

2. mapa de estrellas (función, entrada)

los mapa de estrellas () La función acepta una función y una lista de tuplas como argumentos. Calcula los valores de retorno aplicando la función a cada tupla en la entrada. En el ejemplo dado, esta función calculará el valor máximo de cada tupla y lo devolverá en una matriz.

arr = [(1,2,3), (4,5,6), (7,8,9)]
imprimir (lista (itertools.starmap (max, arr)))

Producción:

[3, 6, 9]

Relacionado: Cómo crear y usar tuplas en Python

3. filterfalse (función)

los filterfalse () La función devuelve valores que no cumplen la condición en la función pasada. El código que se proporciona a continuación elimina todos los valores impares.

arr = [1,2,3,4]
imprimir (lista (itertools.filterfalse (lambda x: x% 2! = 0, arr)))

Producción:

[2, 4]

Continúe su viaje de codificación Python

Ahora que ha aprendido sobre el módulo Itertools, es hora de explorar otros módulos de Python. Python tiene módulos y bibliotecas para un amplio conjunto de tareas. Incluyen conceptos avanzados como la transformación de Fourier y las aplicaciones AI / ML.

Algunos módulos son más complicados que otros y llevará más tiempo aprenderlos. El módulo Tkinter le permite crear aplicaciones GUI completas en Python.

Cómo construir una calculadora en Tkinter

Mejore sus habilidades de Python Tkinter con este proyecto para principiantes.

Leer siguiente

CuotaPíoCorreo electrónico
Temas relacionados
  • Programación
  • Programación
  • Pitón
Sobre el Autor
Unnati Bamania (11 Artículos publicados)

Unnati es un entusiasta desarrollador de pila completa. Le encanta construir proyectos usando varios lenguajes de programación. En su tiempo libre le encanta tocar la guitarra y le encanta la cocina.

Más de Unnati Bamania

Suscríbete a nuestro boletín

¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!

Haga clic aquí para suscribirse