Funciones de iterador en Python | Conjunto 2 (islice (), mapa estelar (), tee () ..)

| |

1. islice (iterable, inicio, parada, paso) : — este iterador imprime selectivamente los valores referenciados en su contenedor iterable pasado como argumento. Este iterador toma 4 argumentos, un contenedor iterativo, una posición inicial, una posición final y un paso.

2. mapa estelar (func., Lista de tuplas) : — Este iterador toma una función y una lista de tuplas como argumento y devuelve un valor según la función de cada tupla de la lista.

# Código Python para demostrar cómo funciona
# islice () y starmap ()


# import & quot; itertools & quot; para operaciones de iterador

import itertools


# lista de inicialización

li = < código clase = "simple"> [ 2 , 4 , 5 , 7 < /código> , 8 , 10 , 20 ]


# inicializar la lista de tuplas

li1 = [( 1 , 10 , 5 ), ( 8 , 4 , 1 ), ( 5 , 4 , 9 ), ( 11 , 10 , 1 )]


# usando islice ( ) para dividir la lista de acuerdo con... necesita
# comienza a imprimir desde el 2do índice hasta el 6to salta 2

print ( "Los valores de la lista segmentada son:" , end = "")

imprimir ( lista (itertools.islice (li, 1 , 6 , 2 ) ))


# usando starmap() para seleccionar un valor acc. function
# selecciona el mínimo de todos los valores de tupla

print ( "Los valores según la función son:" , end = "")

imprimir ( lista (itertools.starmap ( min , li1)))

Salida:

 Los valores de la lista segmentada son: [4, 7, 10] Los valores acc. para funcionar son: [1, 1, 4, 1] 

3. takewhile (func, iterable) : — este iterador es lo opuesto a drop while (), imprime los valores hasta que la función devuelve falso la primera vez.

4. tee (iterador, cuenta) : — Este iterador divide el contenedor en múltiples iteradores mencionados en el argumento.

# código Python para demostrar cómo funciona
# takewhile() y tee()


# import & quot; itertools & quot; para operaciones de iterador

import itertools


# lista de inicialización

li = < código clase = "simple"> [ 2 , 4 , 6 , 7 < /código> , 8 , 10 , 20 ]


# guardar la lista en un iterador

iti = iter (li)


# usando takewhile() para imprimir valores hasta que la condición sea falsa.

print ( " Los valores de la lista ​​hasta el primer valor falso son: " , end = " ")

imprimir ( listar (itertools.takewhile ( lambda x: x % 2 = = 0 , li)))


# usando tee ( ) para listar iteradores
# hace una lista de 3 iteradores que tienen el mismo valor.

it = itertools.tee (iti , 3 )


# imprimiendo los valores del iterador

print ( "Los iteradores son:" )

for i en range ( 0 , 3 ): < /p>

print ( lista (it [i]))

Salida:

Los valores de la lista hasta el primer valor falso son: [2, 4, 6] Los iteradores son: [2, 4, 6, 7, 8, 10, 20] [2, 4, 6, 7, 8, 10, 20] [2, 4, 6, 7 , 8, 10, 20]

5. zip_longest (iterable1, iterable2, fillval.) : &# 8212; este iterador imprime los valores de los iterables uno a la vez. Si una de las iteraciones se imprime por completo, los valores restantes se rellenan con los valores asignados a fillvalue.

# Código Python para demostrar cómo funciona
# zip_longest()


# importar & quot; itertools & quot; para operaciones de iterador

import itertools


# usando zip_longest () para combinar las dos iteraciones.

imprimir ( "Los valores combinados ​de iterables es:" )

print ( * (itertools.zip_longest ( ’GesoGes’ , ’ ekfrek’ , valor de relleno = ’_’ )))

Salida:

 Los valores combinados de iterables son: (’G’, ’e’) (’e ’,’ k’) (’s’,’ f’) (’o’,’ r ’) (’G’, ’e’) (’e’, ’k’) (’s’, ’_’ ) 

Iteradores combinatorios

1. producto (iter1, iter2) : — Este iterador imprime el producto cartesiano de los dos contenedores iterables pasados ​​como argumentos.

2. permutaciones (iter, group_size) : — este iterador imprime todas las permutaciones posibles de todos los elementos del iterable. El tamaño de cada grupo de permutaciones está determinado por el argumento group_size .

# Python- código de demostración
# producto () y permutación ()


# import & quot; itertools & quot; para operaciones de iterador

import itertools


# usar producto () para imprimir un producto cartesiano

imprimir ( "El producto cartesiano de los contenedores es:" )

imprimir ( lista (itertools.product ( ’AB’ , ’ 12’ )))


# usar permutaciones para calcular todas las permutaciones posibles

print ( "Todas las permutaciones del contenedor dado son:" < clase de código = "simple">)

print ( lista (itertools.permutations ( ’GfG’ , 2 )))

Salida:

 El producto cartesiano de los contenedores es: [(’A’, ’1’), (’ A ’, ’2’), (’ B’, ’1’), (’ B’, ’2’)] Todas las permutaciones del contenedor dado son: [(’ G’, ’f’), (’ G ’, ’G’), (’ f’, ’G’), (’ f’, ’G’), (’ G’, ’G’), (’ G’, ’f’)] 

3. combinaciones (iterable, group_size) : — este iterador imprime todas las combinaciones posibles (sin reemplazo) del contenedor pasado en argumentos en el tamaño de grupo especificado en orden ordenado.

4. combinaciones_con_reemplazo (iterable, tamaño_grupo) : — este iterador imprime todas las combinaciones posibles (con reemplazo) del contenedor pasado en argumentos en el tamaño de grupo especificado en orden ordenado.

# Código de Python para demostrar cómo funciona
# combinación () y combinación_con_reemplazo ()


# import & quot; itertools & quot; para operaciones de iterador

import itertools


# usa combinaciones () para imprimir cada combinación
# (sin reemplazos)

print ( "Toda la combinación de contenedor en orden ordenado (sin reemplazo) es: " )

print ( lista (itertools.combinaciones ( ’1234’ , 2 )))


# usando combinación_con_reemplazo () para imprimir cada combinación
# con reemplazo

print ( "Toda la combinación de contenedor en orden ordenado (con reemplazo ) es:" )

print ( list (itertools.combinations_with_replacement ( ’GfG’ < clase de código ="simple ">, 2 )))

Salida:

 Toda la combinación de contenedor en orden ordenado (sin reemplazo) es: [(’ 1’,’ 2 ’), (’ 1’, ’3’), (’ 1’, ’4’), (’ 2’, ’3’), (’ 2’, ’4’), (’ 3’, ’4’)] Toda la combinación de contenedor en orden ordenado (con reemplazo) es: [(’ G’, ’G’), (’ G’, ’f’), (’ G’, ’G ’), (’ f’, ’f’), (’ f’, ’G’), (’ G’, ’G’)] 

Infinito iteradores

1. cuenta (inicio, paso) : — Este iterador comienza a imprimir en "inicio" e imprime indefinidamente . Si se mencionan los pasos, se saltan los números; de lo contrario, el paso es 1 de forma predeterminada.

Ejemplo:

 iterator.count (5,2) imprime - 5,7,9,11 .. . infinitamente 

2. bucle (iterable) : — este iterador imprime todos los valores en orden desde el contenedor pasado. Reanuda la impresión desde el principio nuevamente cuando todos los elementos se ciclan .

Ejemplo:

 iterator.cycle ([1,2,3,4]) imprime - 1,2,3,4,1,2,3,4,1 . .. infinitamente 

3. repetir (val, num) : — Este iterador imprime repetidamente el valor pasado una cantidad infinita de veces. Si se menciona un número, son hasta ese número.

# código Python para demostrar cómo funciona
# repetir()


# import & quot; itertools & quot; para operaciones de iterador

import itertools


# usando repetir () para imprimir repetidamente el número

imprimir ( "Imprimiendo los números repetidamente:" )

imprimir ( listar (itertools.repeat ( 25 , 4 )) )

Salida:

 Imprimiendo el números repetidamente: [25, 25, 25, 25] 

Este artículo es cortesía de Manjeet Singh . Si es Python.Engineering y le gustaría contribuir, también puede escribir un artículo usando contribuya.python.engineering o publicando un artículo contribuir @ python.engineering. Vea mi artículo que aparece en la página de inicio de Python.Engineering y ayude a otros geeks.

Publique comentarios si encuentra algún problema o si desea compartir más información sobre el tema tratado anteriormente.