Função próxima() do Python

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.
  • __next__()método que retorna o próximo item. Se todos os itens foram retornados, o __next__()método gera uma StopIterationexceçã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. A next()função retorna o padrão se o iterador estiver esgotado; caso contrário, gerará uma StopIterationexceçã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 mine maxe 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 randintLinguagem 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) # StopIterationLinguagem 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)  # NoneLinguagem 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 csvLinguagem 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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *