Resumo : neste tutorial, você aprenderá como usar a next()
função Python e como usá-la para recuperar o próximo item de um iterador.
Introdução à função next() do Python
Um iterador é um objeto que implementa o protocolo iterador que consiste em dois métodos:
__iter__()
método que retorna o próprio objeto iterador.
método que retorna o próximo item. Se todos os itens foram retornados, o__next__()
método gera uma__next__()
StopIteration
exceção.
A next()
função obtém o próximo item de um iterador chamando seu __next__()
método.
Aqui está a sintaxe da next()
função:
next(iterator[, default])
Linguagem de código: Python ( python )
A next()
função possui dois parâmetros:
iterator
– este argumento obrigatório especifica um iterador do qual você deseja recuperar o próximo item.default
– este é um argumento opcional. Anext()
função retorna o padrão se o iterador estiver esgotado; caso contrário, gerará umaStopIteration
exceção.
Exemplos de funções next() em Python
Vejamos alguns exemplos de uso da next()
função.
1) Usando a função next() do Python com um exemplo de iterador
O exemplo a seguir define um iterador que retorna um número de números aleatórios entre min
e max
e usa a next()
função para obter o próximo número aleatório do iterador:
from random import randint
def random_seq(min, max, size):
for _ in range(0, size):
yield randint(min, max)
random_numbers = random_seq(1, 100, 3)
r = next(random_numbers)
print(r)
r = next(random_numbers)
print(r)
r = next(random_numbers)
print(r)
Linguagem de código: Python ( python )
Como funciona.
Primeiro, importe a randint()
função do módulo aleatório integrado:
from random import randint
Linguagem de código: Python ( python )
Segundo, defina um gerador que retorne um número de números inteiros aleatórios entre mínimo e máximo:
def random_seq(min, max, size):
for _ in range(0, size):
yield randint(min, max)
Linguagem de código: Python ( python )
Terceiro, chame a função random_seq:
random_numbers = random_seq(1, 100, 3)
Linguagem de código: Python ( python )
O random_numbers é um gerador que também é um iterador.
Quarto, chame a next()
função três vezes para obter o próximo item do iterador random_numbers:
r = next(random_numbers)
print(r)
r = next(random_numbers)
print(r)
r = next(random_numbers)
print(r)
Linguagem de código: Python ( python )
Deve exibir três números aleatórios entre 1 e 100.
Se você chamar a next()
função mais uma vez, receberá uma exceção StopIteration:
r = next(random_numbers) # StopIteration
Linguagem de código: Python ( python )
No entanto, se você usar um valor padrão, a next()
função retornará esse valor em vez de gerar a exceção StopIteration:
r = next(random_numbers, None)
print(r) # None
Linguagem de código: Python ( python )
2) Usando a função next() do Python para pular o título ao ler um arquivo csv
O exemplo a seguir usa o módulo csv integrado para ler o arquivo country.csv com as seguintes informações:
import csv
with open('country.csv', encoding='utf8') as f:
csv_reader = csv.reader(f)
# skip the header
next(csv_reader)
# iterate over the data line
for line in csv_reader:
print(line)
Linguagem de código: Python ( python )
Como funciona.
Primeiro, importe o módulo csv:
import csv
Linguagem de código: Python ( python )
Segundo, abra o arquivo country.csv e retorne o objeto leitor do csv. reader()
função. O objeto leitor é um iterador.
with open('country.csv', encoding='utf8') as f:
csv_reader = csv.reader(f)
#...
Linguagem de código: Python ( python )
Terceiro, chame a next()
função para recuperar o cabeçalho do iterador csv_reader:
next(csv_reader)
Linguagem de código: Python ( python )
Finalmente, exiba todas as linhas de dados:
for line in csv_reader:
print(line)
Linguagem de código: Python ( python )
Resumo
- Use a
next()
função Python para obter o próximo item de um iterador.