Itertools en Python3

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

Deja una respuesta

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