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