El módulo itertools de Python es una colección de herramientas para manejar iteradores.
Según la documentación oficial:
«Módulo [que] implementa una serie de bloques de construcción de iteradores inspirados en construcciones de APL, Haskell y SML… Juntos, forman un ‘álgebra de iteradores’ que hace posible construir herramientas especializadas de manera sucinta y eficiente en Python puro». esto básicamente significa que las funciones en itertools “operan” en iteradores para producir iteradores más complejos.
En pocas palabras, los iteradores son tipos de datos que se pueden usar en un bucle for. El iterador más común en Python es la lista.
Vamos a crear una lista de strings y llamarla colores. Podemos usar un bucle for para iterar la lista como:
colors = ['red', 'orange', 'yellow', 'green'] # Iterating List for each in colors: print(each)
red orange yellow green
Hay muchos tipos diferentes de iterables, pero por ahora usaremos listas y conjuntos.
Requisitos para trabajar con itertools
Debe importar el módulo itertools antes de usar. También tenemos que importar el módulo de operador porque queremos trabajar con operadores.
import itertools import operator ## only needed if want to play with operators
El módulo Itertools es una colección de funciones. Vamos a explorar una de estas funciones de acumulación() .
Nota: Para obtener más información, consulte Python Itertools
acumular()
Este iterador toma dos argumentos, el objetivo iterable y la función que se seguiría en cada iteración del valor en el objetivo. Si no se pasa ninguna función, la adición se realiza de forma predeterminada. Si el iterable de entrada está vacío, el iterable de salida también estará vacío.
Sintaxis
itertools.accumulate(iterable[, func]) –> acumular objeto
Esta función hace un iterador que devuelve los resultados de una función.
Parámetros
iterables y función
Ahora es suficiente de la parte teórica, juguemos con el código.
Código: 1
# import the itertool module # to work with it import itertools # import operator to work # with operator import operator # creating a list GFG GFG = [1, 2, 3, 4, 5] # using the itertools.accumulate() result = itertools.accumulate(GFG, operator.mul) # printing each item from list for each in result: print(each)
1 2 6 24 120
Explicación :
El operator.mul toma dos números y los multiplica.
operator.mul(1, 2) 2 operator.mul(2, 3) 6 operator.mul(6, 4) 24 operator.mul(24, 5) 120
Ahora, en el siguiente ejemplo, usaremos la función max ya que también toma una función como parámetro.
Código 2:
# import the itertool module # to work with it import itertools # import operator to work with # operator import operator # creating a list GFG GFG = [5, 3, 6, 2, 1, 9, 1] # using the itertools.accumulate() # Now here no need to import operator # as we are not using any operator # Try after removing it gives same result result = itertools.accumulate(GFG, max) # printing each item from list for each in result: print(each)
5 5 6 6 6 9 9
Explicación:
5 max(5, 3) 5 max(5, 6) 6 max(6, 2) 6 max(6, 1) 6 max(6, 9) 9 max(9, 1) 9
Nota: La función de aprobación es opcional, ya que si no aprobará ninguna función, los elementos se sumarán, es decir, se agregarán de manera predeterminada.
itertools.accumulate(set.difference)
Esta acumulación de devolución de elementos de diferencia entre conjuntos.
Código para explicar
# import the itertool module to # work with it import itertools # creating a set GFG1 and GFG2 GFG1 = { 5, 3, 6, 2, 1, 9 } GFG2 ={ 4, 2, 6, 0, 7 } # using the itertools.accumulate() # Now this will first give difference # and the give result by adding all # the element in result as by default # if no function passed it will add always result = itertools.accumulate(GFG2.difference(GFG1)) # printing each item from list for each in result: print(each)
0 4 11
Publicación traducida automáticamente
Artículo escrito por YashKhandelwal8 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA