ComeçarComece gratuitamente

Prática incorporada: enumerate()

Neste exercício, você praticará o uso da função integrada do Python enumerate(). Essa função é útil para obter uma lista indexada. Por exemplo, suponha que você tenha uma lista de pessoas que chegaram a uma festa que você está organizando. A lista é ordenada por chegada (Jerry foi o primeiro a chegar, seguido por Kramer, etc.):

names = ['Jerry', 'Kramer', 'Elaine', 'George', 'Newman']

Se você quisesse anexar um índice que representasse a ordem de chegada de uma pessoa, poderia usar o seguinte loop for:

indexed_names = []
for i in range(len(names)):

    index_name = (i, names[i])

    indexed_names.append(index_name)


[(0,'Jerry'),(1,'Kramer'),(2,'Elaine'),(3,'George'),(4,'Newman')]

Porém, essa não é a solução mais eficiente. Vamos explorar como você pode usar o site enumerate() para tornar isso mais eficiente.

Este exercício faz parte do curso

Como escrever um código Python eficiente

Ver Curso

Instruções de exercício

  • Em vez de usar for i in range(len(names)), atualize o loop for para usar i como a variável de índice e name como a variável de iterador e use enumerate().
  • Reescreva o loop for anterior usando enumerate() e a compreensão de lista para criar uma nova lista, indexed_names_comp.
  • Crie outra lista (indexed_names_unpack) usando o caractere estrela (*) para desempacotar o objeto enumerado criado com o uso de enumerate() em names. Desta vez, inicie o índice para enumerate() em um, em vez de zero.

Exercício interativo prático

Experimente este exercício preenchendo este código de exemplo.

# Rewrite the for loop to use enumerate
indexed_names = []
for ____,_____ in ____(names):
    index_name = (i,name)
    indexed_names.append(index_name) 
print(indexed_names)

# Rewrite the above for loop using list comprehension
indexed_names_comp = [(____,____) for i,name in ____(names)]
print(indexed_names_comp)

# Unpack an enumerate object with a starting index of one
indexed_names_unpack = [____(names, ____)]
print(indexed_names_unpack)
Editar e executar código