Funções do Iterador em Python | Conjunto 2 (islice (), starmap (), tee () ..)

| |

1. islice (iterável, iniciar, parar, etapa) : — este iterador imprime seletivamente os valores referenciados em seu container iterável passado como argumento. Este iterador recebe 4 argumentos, um contêiner iterativo, posição inicial, posição final e passo.

2. starmap (func., Lista de tuplas) : — Este iterador recebe uma função e uma lista de tuplas como argumento e retorna um valor de acordo com a função de cada tupla na lista.

# código Python para demonstrar como funciona
# islice () e starmap ()


# import & quot; itertools & quot; para operações do iterador

import itertools


# inicializando lista

li = [ 2 , 4 , 5 , 7 , 8 , 10 , 20 ]


# inicializa a lista de tuplas

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


# usando islice ( ) para dividir a lista de acordo com ... necessidade
# inicia a impressão do 2º índice para o 6º pule 2

print ( "Os valores da lista fatiada são:" , end = "")

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


# usando starmap () para selecionar um valor acc. function
# seleciona o mínimo de todos os valores da tupla

print ( "Os valores de acordo com a função são:" , end = "")

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

Saída:

 Os valores da lista fatiada são: [4, 7, 10] Os valores acc. para funcionar são: [1, 1, 4, 1] 

3. takewhile (func, iterable) : — esse iterador é o oposto de drop while(), ele imprime os valores até que a função retorne false na primeira vez.

4. tee (iterador, contagem) : — Este iterador divide o contêiner em vários iteradores mencionados no argumento.

# código Python para demonstrar como funciona
# takewhile () e tee ()


# import & quot; itertools & quot; para operações do iterador

import itertools


# inicializando lista

li = [ 2 , 4 , 6 , 7 , 8 , 10 , 20 ]


# salva a lista em um iterador

iti = iter (li)


# using takewhile() para imprimir valores até que a condição seja falsa.

print ( " Os valores da lista até o primeiro valor falso são: " , end = " ")

print ( lista (itertools.takewhile ( lambda x: x % 2 = = 0 , li)))


# using tee ( ) para listar iteradores
# faz uma lista de 3 iteradores que possuem o mesmo valor.

it = itertools.tee (iti , 3 )


# imprimindo valores do iterador

print ( "Os iteradores são:" )

for i em intervalo ( 0 , 3 ): < /p>

print ( lista (it [i]))

Saída:

Os valores da lista até o 1º valor falso são: [2, 4, 6] Os iteradores são: [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 os valores dos iteráveis ​​um por vez . Se uma das iterações for impressa completamente, os valores restantes são preenchidos com os valores atribuídos ao fillvalue .

# código Python para demonstrar como funciona
# zip_longest ()


# import & quot; itertools & quot; para operações do iterador

import itertools


# usando zip_longest() para combinar as duas iterações.

print ( "Os valores combinados​ de iteráveis ​​é:" )

print ( * (itertools.zip_longest ( ’GesoGes’ , ’ ekfrek’ , fillvalue = ’_’ )))

Saída:

 Os valores combinados de iteráveis ​​são: (’G’,’ e’) (’e ’,’ k’) (’s’,’ f’) (’o’,’ r ’) (’ G’, ’e’) (’ e’, ’k’) (’ s’, ’_’ ) 

Iteradores combinatórios

1. produto (iter1, iter2) : — Este iterador imprime o produto cartesiano dos dois contêineres iteráveis ​​passados ​​como argumentos.

2. permutações (iter, group_size) : — este iterador imprime todas as permutações possíveis de todos os elementos do iterável. O tamanho de cada grupo de permutação é determinado pelo argumento group_size .

# código de demonstração Python
# produto () e permutação ()


# import & quot; itertools & quot; para operações do iterador

import itertools


# usando product () para imprimir um produto cartesiano

print ( "O produto cartesiano dos contêineres é:" )

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


# use permutações para calcular todas as permutações possíveis

print ( "Todas as permutações do contêiner fornecido são:" < classe de código = "plain">)

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

Saída:

 O produto cartesiano dos contêineres é: [(’A’, ’1’), (’ A ’, ’2’), (’ B’, ’1’), (’ B’, ’2’)] Todas as permutações do recipiente dado são: [(’ G’, ’f’), (’ G ’, ’G’), (’ f’, ’G’), (’ f’, ’G’), (’ G’, ’G’), (’ G’, ’f’)] 

3. combinações (iterável, group_size) : — este iterador imprime todas as combinações possíveis (sem substituição) do contêiner passado em argumentos no tamanho do grupo especificado em ordem classificada.

4. combinações_com_substituição (iterável, tamanho_grupo) : — este iterador imprime todas as combinações possíveis (com substituição) do contêiner passado em argumentos no tamanho do grupo especificado em ordem classificada.

tr>

# código Python para demonstrar como funciona
# combinação () e combinação_com_reposição ()


# import & quot; itertools & quot; para operações do iterador

import itertools


# use combinações () para imprimir cada combinação
# (sem substituições)

print ( "Toda a combinação de contêiner em ordem ordenada (sem substituição) é: " )

imprimir ( lista (itertools.combinations ( ’1234’ , 2 )))


# usando combinação_with_replacement () para imprimir cada combinação
# com substituição

print ( "Toda a combinação de container em ordem ordenada (com substituição ) é:" )

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

Saída:

 Toda a combinação de container em ordem ordenada (sem substituição) é: [(’ 1’,’ 2’), (’ 1’, ’3’), (’ 1’, ’4’), (’ 2’, ’3’), (’ 2’, ’4’), (’ 3’, ’4’)] Toda a combinação de contêiner em ordem ordenada (com reposição) é: [(’ G’, ’G’), (’ G’, ’f’), (’ G’, ’G ’), (’ f’, ’f’), (’ f’, ’G’), (’ G’, ’G’)] 

Infinito iteradores

1. contagem (início, passo) : — Este iterador começa a imprimir no "início" e imprime indefinidamente . Se as etapas forem mencionadas, os números serão ignorados, caso contrário, a etapa será 1 por padrão.

Exemplo:

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

2. loop (iterável) : — este iterador imprime todos os valores em ordem do container passado. Ele retoma a impressão desde o início quando todos os itens são alternados .

Exemplo:

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

3. repita (val, num) : — Este iterador imprime repetidamente o valor passado um número infinito de vezes. Se um número é mencionado, eles são até esse número.

# código Python para demonstrar como funciona
# repeat ()


# import & quot; itertools & quot; para operações do iterador

import itertools


# usando repeat() para imprimir repetidamente o número

print ( "Imprimindo os números repetidamente:" )

print ( lista (itertools.repeat ( 25 , 4 )) )

Saída:

 Imprimindo o números repetidamente: [25, 25, 25, 25] 

Este artigo é cortesia de Manjeet Singh . Se você é Python.Engineering e gostaria de contribuir, você também pode escrever um artigo usando contribute.python.engineering ou postando um artigo contribua @ python.engineering. Veja meu artigo na página inicial do Python.Engineering e ajude outros geeks.

Por favor, poste comentários se você encontrar algo errado ou se quiser compartilhar mais informações sobre o tópico discutido acima.