Itertools es un módulo en Python, se usa para iterar sobre estructuras de datos que se pueden pasar por alto usando un bucle for. Estas estructuras de datos también se conocen como iterables. Este módulo funciona como una herramienta rápida y eficiente en memoria que se usa solo o en combinación para formar álgebra de iteración.
¿Por qué usar?
Este módulo incorpora funciones que utilizan los recursos computacionales de manera eficiente. El uso de este módulo también tiende a mejorar la legibilidad y la capacidad de mantenimiento del código.
receta de mero
La función grouper() se puede encontrar en la sección Recetas de los documentos de itertools. Las recetas son una excelente fuente de inspiración sobre las formas de utilizar itertools para su beneficio.
Ejemplo
python3
# Python code to demonstrate the # grouper Recipe import itertools as it # defining the grouper function def grouper(inputs, n, fillvalue = None): iters = [iter(inputs)] * n return it.zip_longest(*iters, fillvalue = fillvalue) alpha = ['g', 'e', 'e', 'k', 's', 'f', 'o', 'r', 'g', 'e', 'e', 'k', 's'] print(list(grouper(alpha, 3)))
Producción :
[(‘g’, ‘e’, ’e’), (‘k’, ‘s’, ‘f’), (‘o’, ‘r’, ‘g’), (‘e’, ‘e ‘, ‘k’), (‘s’, Ninguno, Ninguno)]
escenario de fuerza bruta
La fuerza bruta es un método sencillo para resolver un problema que se basa en la potencia informática pura y en probar todas las posibilidades en lugar de técnicas avanzadas para mejorar la eficiencia. Hay diferentes funciones de itertools de fuerza bruta, tales como:
- combinaciones()
- combinaciones_con_reemplazo()
- permutaciones()
combinaciones()
La función itertools.combinations() toma dos argumentos, una entrada iterable y un entero positivo n, y produce un iterador sobre tuplas de todas las combinaciones de n elementos en las entradas.
Ejemplo
python3
# Python code to demonstrate combinations import itertools as it print(list(it.combinations([1, 2], 2)))
Producción :
[(1, 2)]
combinaciones_con_reemplazo()
combinaciones_con_reemplazo() funciona igual que combinaciones(), acepta entradas iterables y un entero positivo n, y devuelve un iterador sobre n-tuplas de elementos de las entradas. La diferencia es que combinaciones_con_reemplazo() permite que los elementos se repitan en las tuplas que devuelve.
Ejemplo
python3
# Python code to demonstrate combinations_with_replacement import itertools as it print(list(it.combinations_with_replacement([1, 2], 2)))
Producción :
[(1, 1), (1, 2), (2, 2)]
permutaciones()
Una permutación es una colección o una combinación de objetos de un conjunto donde el orden o la disposición de los objetos elegidos sí importa. permutations() acepta un solo iterable y produce todas las posibles permutaciones (reordenamientos) de sus elementos.
Ejemplo
python3
# Python code to demonstrate permutations import itertools as it print(list(it.permutations(['g', 'e', 'k'])))
Producción :
[(‘g’, ‘e’, ’k’), (‘g’, ‘k’, ‘e’), (‘e’, ‘g’, ‘k’), (‘e’, ‘k ‘, ‘g’), (‘k’, ‘g’, ‘e’), (‘k’, ‘e’, ’g’)]
Aplanar una lista de listas
Convertir una lista de listas (2D) en una lista (1D) se denomina aplanamiento. Aplanar una lista de listas fusiona todas las sublistas en una lista unificada.
Ejemplo
python3
# Python code to demonstrate flattening a list of lists import itertools as it list_of_lists = [[1, 2], [3, 4]] chain_object = it.chain.from_iterable(list_of_lists) # Return chain object with nested lists separated # Convert to list to flatten flattened_list = list(chain_object) print(flattened_list)
Producción :
[1, 2, 3, 4]
Publicación traducida automáticamente
Artículo escrito por ashishguru9803 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA