Funciones de iterador en Python | Serie 1

Perquisite: iteradores en Python
Python en su definición también permite algunas funciones de iterador interesantes y útiles para un bucle eficiente y hacer que la ejecución del código sea más rápida. Hay muchos iteradores integrados en el módulo » itertools «. 
Este módulo implementa varios bloques de construcción de iteradores. 
Algunos iteradores útiles: 
1. Accumulate(iter, func) : – 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 lleva a cabo de manera predeterminada. Si el iterable de entrada está vacío, el iterable de salida también estará vacío.
2. string (iter1, iter2 ..):- Esta función se usa para imprimir todos los valores en objetivos iterables uno tras otro mencionados en sus argumentos.
 

Python3

# Python code to demonstrate the working of
# accumulate() and chain()
 
# importing "itertools" for iterator operations
import itertools
 
# importing "operator" for operator operations
import operator
 
# initializing list 1
li1 = [1, 4, 5, 7]
 
# initializing list 2
li2 = [1, 6, 5, 9]
 
# initializing list 3
li3 = [8, 10, 5, 4]
 
# using accumulate()
# prints the successive summation of elements
print ("The sum after each iteration is : ",end="")
print (list(itertools.accumulate(li1)))
 
# using accumulate()
# prints the successive multiplication of elements
print ("The product after each iteration is : ",end="")
print (list(itertools.accumulate(li1,operator.mul)))
 
# using chain() to print all elements of lists
print ("All values in mentioned chain are : ",end="")
print (list(itertools.chain(li1,li2,li3)))

Producción: 
 

The sum after each iteration is : [1, 5, 10, 17]
The product after each iteration is : [1, 4, 20, 140]
All values in mentioned chain are : [1, 4, 5, 7, 1, 6, 5, 9, 8, 10, 5, 4]

3. chain.from_iterable() : – Esta función se implementa de manera similar a chain() pero el argumento aquí es una lista de listas o cualquier otro contenedor iterable .
4. compress(iter, selector) :- Este iterador selecciona selectivamente los valores para imprimir del contenedor pasado de acuerdo con el valor de la lista booleana pasado como otro argumento. Los argumentos correspondientes a boolean true se imprimen ; de lo contrario, se omiten todos.
 

Python3

# Python code to demonstrate the working of
# chain.from_iterable() and compress()
 
# importing "itertools" for iterator operations
import itertools
 
# initializing list 1
li1 = [1, 4, 5, 7]
 
# initializing list 2
li2 = [1, 6, 5, 9]
 
# initializing list 3
li3 = [8, 10, 5, 4]
 
# initializing list of list
li4 = [li1, li2, li3]
 
# using chain.from_iterable() to print all elements of lists
print ("All values in mentioned chain are : ",end="")
print (list(itertools.chain.from_iterable(li4)))
 
# using compress() selectively print data values
print ("The compressed values in string are : ",end="")
print (list(itertools.compress('GEEKSFORGEEKS',[1,0,0,0,0,1,0,0,1,0,0,0,0])))

Producción: 
 

All values in mentioned chain are : [1, 4, 5, 7, 1, 6, 5, 9, 8, 10, 5, 4]
The compressed values in string are : ['G', 'F', 'G']

5. dropwhile(func, seq) :- Este iterador comienza a imprimir los caracteres solo después de la func. en el argumento devuelve falso por primera vez.
6. filterfalse(func, seq) :- Como sugiere el nombre, este iterador imprime solo valores que devuelven falso para la función pasada. 
 

Python3

# Python code to demonstrate the working of
# dropwhile() and filterfalse()
 
# importing "itertools" for iterator operations
import itertools
 
# initializing list
li = [2, 4, 5, 7, 8]
 
# using dropwhile() to start displaying after condition is false
print ("The values after condition returns false : ",end="")
print (list(itertools.dropwhile(lambda x : x%2==0,li)))
 
# using filterfalse() to print false values
print ("The values that return false to function are : ",end="")
print (list(itertools.filterfalse(lambda x : x%2==0,li)))

Producción: 
 

The values after condition returns false : [5, 7, 8]
The values that return false to function are : [5, 7]

Complejidad del tiempo: 

Caso Promedio : O(N)

Caso amortizado : O( N)

Referencia : https://docs.python.org/dev/library/itertools.html
 

Este artículo es una contribución de Manjeet Singh . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *