Métodos do iterador
Cada objeto iterador contém os dois métodos a seguir.
Este método é usado para inicializar o objeto iterável. O objeto retornado tem o método '_ _próximo_ _()'Em Python 3.
Este método retorna o próximo valor do objeto iterável. A relação entre o iterador e o objeto iterável é mostrado no diagrama a seguir.
Iterando com loops
Foi mencionado anteriormente que 'para'Loop chama o'próximo()'Método implicitamente quando itera qualquer objeto iterável. Quando um loop é usado para iterar um objeto iterável, o 'para'Loop chama o'próximo()'Método implicitamente e o'enquanto'Loop chama o'próximo()' ou '__próximo__()'Método explicitamente para ler o próximo valor do objeto iterável. Ambos os tipos de loop continuam chamando esse método até o 'Stopiberation'O sinal é gerado.
Exemplo 1: iterando objetos iteráveis com 'para' loop
O script a seguir mostra o uso de 'para'Loops para iterar cinco objetos iteráveis diferentes. O primeiro 'para'O loop é usado para iterar o valor da string e imprimir cada caractere da string em cada iteração. O segundo 'para'O loop é usado para iterar o conteúdo de um arquivo de texto existente e imprimir cada linha do arquivo em cada iteração. O terceiro 'para'O loop é usado para iterar os valores de uma tupla. O quarto 'para'O loop é usado para iterar os valores contidos em uma lista. O quinto 'para'O loop é usado para iterar os valores contidos em um dicionário.
# Iterando uma string usando o loopSaída
A saída a seguir mostra que os caracteres do valor da string; as linhas do teste.TXT arquivo; e os itens das tuplas, lista e dicionário são impressos após a execução do script.
Exemplo 2: listas de iteração com 'while' loop
O script a seguir mostra o uso de A 'enquanto'Loop para iterar uma lista de dados. Aqui o 'iter ()'O método é usado para inicializar o objeto iterável e o'próximo()'O método é usado para ler o próximo valor do objeto iterável. Stopiberation o sinal é usado para terminar do infinito 'enquanto' loop quando nenhum item da lista deixou para leitura.
# Defina uma listaSaída
A saída a seguir mostra que cada valor da lista foi impresso em cada linha usando o 'próximo()'Método depois de executar o script.
Exemplo 3: iterando uma tupla com '__next __ ()' 'e' while loop
No script a seguir, ambos 'próximo()' e '__próximo__()'Os métodos são usados para iterar os valores de uma tupla. O 'iter ()'O método é usado para criar o objeto iterável, chamado'init_iter.' Aqui o 'próximo()'O método é chamado duas vezes para imprimir os dois primeiros valores da tupla. Em seguida, um infinito 'enquanto'Loop é usado para iterar os valores restantes da tupla e do'Stopiberation'O sinal é usado para terminar a partir do loop, como no exemplo anterior.
# Defina uma tuplaSaída
A saída a seguir mostra que, depois de executar o script, os dois primeiros valores ''Pássaro' e 'Leão,'são impressos com o'próximo()'método, enquanto os outros três valores'Macaco,"Cobra,' e 'Elefante,'são impressos com o'__próximo__()'Método.
Iterando com um iterador personalizado
Esta seção mostra como diferentes tipos de iteradores personalizados podem ser implementados criando classes. Ambos '__iter __ ()' e a '__próximo__()'Os métodos serão implementados em uma classe e o'enquanto'Loop será usado para iterar os valores do objeto iterável. A próxima parte deste artigo também mostrará como criar um iterador personalizado infinito e controlar a iteração.
Exemplo 4: Uso de um iterador personalizado simples
O script a seguir permite calcular o valor de xn Usando um iterador personalizado sem usar qualquer função interna do Python. A classe chamada 'x_to_the_power_n'é declarado no script. O '__iniciar__()'O método da classe inicializará os valores de x e n que será usado no momento da criação de objetos. O '__iter __ ()'O método inicializará a variável de classe, que armazenará o'resultado'variável do cálculo em cada iteração. Os valores de x e n será tomado como entrada do usuário. Um objeto da classe 'números'é criado com x e n. Em seguida, um objeto iterável chamado 'iter_obj'é criado para chamar o'__próximo__()'Método para N-1 tempos usando o 'enquanto'loop para calcular o valor de xn. Em cada iteração, o valor de x será multiplicado pelo valor anterior do 'resultado' variável. Depois de encerrar o 'enquanto'Loop, o'__próximo__()'O método será chamado novamente para imprimir o valor de xn.
"Crie uma classe para calcular oSaída
A saída a seguir mostra que 2 é considerado o valor de x e 4 é considerado o valor de n. Então, o script calculou o valor de 24 ser 16.
Exemplo 5: Uso de um Iterador Custom Infinito
O script a seguir imprimirá continuamente os números divisíveis por 5 com um atraso de um segundo até que o usuário pressione Ctrl + c Para gerar o 'Teclado interruptora'sinal. O infinito 'enquanto'O loop é usado aqui para criar um iterador personalizado infinito. O 'tempo'O módulo é importado no início do script para usar o'dormir()'Método para adiar cada saída para um segundo. O número 5 é inicializado para o 'num'Variável como o primeiro número divisível no script, e o próximo número é gerado adicionando 5 com o valor anterior do'num' variável.
# Módulo de tempo de importaçãoSaída
A saída a seguir mostra que o número começou a imprimir de 5 e continuou continuamente os próximos números um após o outro com uma duração de um segundo. Quando o usuário pressionou Ctrl + c Depois de imprimir o número 60, a mensagem 'Ctrl+C é pressionado.'foi impresso antes de encerrar o script.
Exemplo 6: Controlar um Iterador Infinito personalizado
O script a seguir mostra como interromper o iterador infinito personalizado depois de concluir um número especificado de iterações. O '__iter __ ()'O método da classe inicializará os valores do'n' e 'resultadoVariáveis de classe. O script calculará os quadrados dos números, começando de 1, que são armazenados na variável n, e imprima o valor quadrado de n até o valor de n é melhor que 5. Um infinito enquanto o loop é declarado aqui para ligar para o '__próximo__()'Método para imprimir o valor quadrado de n. Quando o valor de n alcance 6, o 'Stopiberation'O sinal gerará para encerrar o loop.
# Módulo de tempo de importaçãoSaída
A saída a seguir mostra que o Iterador Custom Infinito foi encerrado quando o valor de n se tornou maior que 5. O script calculou e imprimiu os valores quadrados dos valores numéricos de 1 a 5.
Iterando com itterols
Python tem um módulo embutido chamado 'itetools'Isso pode ser usado para criar um iterador para iterando dados usando um loop. A próxima seção deste artigo mostra como usar três funções neste módulo.
itetools.contar()
O 'ITERTOOLS.cont'A função pode ser usada com o'mapa()'Método para gerar dados seqüenciais e com o'fecho eclair()'Método para adicionar sequências usando o parâmetro de contagem deste método. A sintaxe desta função é dada abaixo.
Sintaxe
itetools.contagem (start = 0, etapa = 1)Aqui, o primeiro parâmetro, 'começar,'é usado para definir o valor inicial da sequência e 0 é o valor padrão deste parâmetro. O segundo parâmetro, 'etapa,'é usado para definir a diferença entre os números consecutivos e 1 é o valor padrão deste parâmetro.
Exemplo 7: Uso de contagem () Função de ITERTOOLS
O script a seguir calculará a soma de 0 para n números, onde o valor de n será retirado do usuário. O 'contar()'A função é importada de'itetools'No início do script. O 'my_iterator'Objeto é inicializado com o'contar()'função, com um'começar'Valor de 0 e A'etapa'valor de 1. Em seguida, o 'SUM_RESULT'A variável é inicializada pelo primeiro valor do objeto iterável. O valor inicial é inicializado para a variável eu e o número inicial é armazenado como o personagem na variável, números que serão usados para combinar outros números em cada iteração. Os valores dos números seqüenciais serão adicionados em cada iteração quando 'próximo()'O método é chamado. Quando o valor de eu torna -se maior que n, O script terá rescisão exibindo o resultado da soma.
"O script a seguir calcularáSaída
A saída a seguir mostra que o número 10 é tomado como a entrada usada para encerrar o loop após a execução do script. Nesta saída, o script calculou a soma de 0 a 10 e imprimiu a saída, 0+1+2+3+4+5+6+7+8+9+10 = 55.
Itetools.ciclo()
Esta função contém apenas um argumento, que pode ser qualquer objeto. O objetivo desta função é repetir os valores do objeto após concluir a iteração de todos os valores. Aqui, cordas, tuplas, listas, etc. pode ser usado como objeto. O objeto iterável retorna desta função é usado para iterar cada valor do objeto que será usado como argumento usando o 'próximo()'Método. O número de vezes que os valores do objeto iterável irão iterar serão baseados no número de iterações do loop. A sintaxe desta função é dada abaixo.
Sintaxe
itetools.ciclo (objeto)Exemplo 8: Uso da Função Cycle () de ITERTOOLS
O 'aleatório' e 'itetools'Os módulos são importados no início do script para gerar um número aleatório e usar o'ciclo()'Função do'itetools'Módulo para repetir os dados. Uma lista de três números aleatórios é usada como argumento do 'ciclo()'função. O objeto iterável chamado 'num_list'é inicializado pelo valor de retorno desta função. O 'contar'A variável é inicializada para 0, e quando o valor dessa variável se torna 6, o 'enquanto'Loop terá rescisão. Então o 'enquanto'O loop iterará seis vezes, e cada valor da lista repetirá apenas uma vez.
# Importar módulo aleatórioSaída
A saída a seguir mostra que três números aleatórios, 3, 17, e 185, foram gerados como itens de lista. O loop é iterado seis vezes e esses três valores são repetidos para as próximas iterações.
Itetools.repita()
A função 'repetição ()' funciona como um iterador infinito e pode levar dois argumentos. Quando o segundo argumento é omitido, a função 'repetição ()' funciona como um iterador infinito e repete o valor um número infinito de vezes. Esta função não ocupa memória para cada repetição. Ele apenas cria a variável uma vez na memória e repete a mesma variável um número infinito de vezes em que apenas um argumento é definido para esta função. A sintaxe desta função é dada abaixo.
Sintaxe
itetools.Repita (valor, limite)O primeiro argumento é usado para aceitar o valor que repetirá. O segundo argumento é opcional e é usado para definir o limite de repetições.
Exemplo 9: Uso de repetição () Função do módulo ITERTOOLS
O 'itetools'O módulo é importado no início do script para usar o'repita()'função. Um valor de string será retirado do usuário para repetir e um valor numérico será retirado do usuário para definir o limite de repetição. O valor de retorno do 'repita()'A função será então convertida em uma lista com o'lista()'método e armazenado no'ListData' variável. Os valores do 'ListData'será impresso com o'para' laço.
# Importar módulo ITERTOOLSSaída
A saída a seguir mostra que 'Pitão'é considerado o valor da string e 3 é considerado como o número usado para repetir o valor da string após a execução do script. A saída mostra que a string 'Pitão'é repetido três vezes.
Conclusão
O conceito de iterador e os usos de diferentes tipos de iteradores em Python são tentados para explicar com os exemplos muito simples deste artigo. Os usuários do Python podem usar um iterador embutido ou podem criar seu iterador personalizado com base no requisito. Este artigo ajudará os usuários do Python a saber sobre os métodos usados no iterador e como esses métodos funcionam com qualquer loop para ler qualquer objeto iterável. Alguns usos de itetools O módulo de Python também é explicado neste artigo para saber mais detalhes do iterador em Python.