15.12.2022 Views

Python Eficaz

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

O Python oferece a função nativa enumerate para esses casos. enumerate

envolve qualquer iterador com um gerador simplificado. Esse gerador produz

um par de valores, o índice do laço e o próximo valor do iterador. O código

resultante é muito mais claro.

for i, flavor in enumerate(flavor_list):

print('%d: %s' % (i + 1, flavor))

>>>

1: vanilla

2: chocolate

3: pecan

4: strawberry

O código pode ficar ainda mais curto se for especificado o número pelo qual o

enumerate deve iniciar a contagem (neste caso, 1).

for i, flavor in enumerate(flavor_list, 1):

print('%d: %s' % (i, flavor))

Lembre-se

• enumerate oferece uma sintaxe concisa para laços em iteradores e para obter

o índice de cada item do iterador durante o andamento da varredura.

• Prefira enumerate em vez de criar um laço baseado em range e índices de

sequência.

• É possível fornecer um segundo parâmetro para o enumerate para especificar

o número pelo qual a contagem será iniciada (o default é zero).

Item 11: Use zip para processar iteradores em

paralelo

Muitas vezes em Python nos deparamos com múltiplas listas de objetos

relacionados. As abrangências de lista facilitam tomar uma lista de origem e

obter uma lista derivada aplicando uma expressão a ela (consulte o Item 7: “Use

abrangências de lista em vez de map e filter”).

names = ['Cecilia', 'Lise', 'Marie']

letters = [len(n) for n in names]

www.full-ebook.com

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!