Loop de conversão holística
Uma lista de todos os tipos possíveis de Pokémon foi carregada na sua sessão como pokemon_types
. Ele foi impresso no console por conveniência.
Você gostaria de reunir todos os pares possíveis de tipos de Pokémon. Você deseja armazenar cada um desses pares em uma lista individual com um índice enumerado como o primeiro elemento de cada lista. Isso permite que você veja o número total de pares possíveis e fornece um rótulo indexado para cada par.
O loop abaixo foi escrito para realizar essa tarefa:
enumerated_pairs = []
for i,pair in enumerate(possible_pairs, 1):
enumerated_pair_tuple = (i,) + pair
enumerated_pair_list = list(enumerated_pair_tuple)
enumerated_pairs.append(enumerated_pair_list)
Vamos tornar esse loop mais eficiente usando uma conversão holística.
Este exercício faz parte do curso
Como escrever um código Python eficiente
Instruções de exercício
combinations
do móduloitertools
foi carregado em sua sessão. Use-o para criar uma lista chamadapossible_pairs
que contém todos os pares possíveis de tipos de Pokémon (cada par tem2
tipos de Pokémon).- Crie uma lista vazia chamada
enumerated_tuples
acima do loop for. - No loop for, acrescente cada
enumerated_pair_tuple
à lista vazia que você criou na etapa acima. - Use uma função integrada para converter cada tupla em
enumerated_tuples
em uma lista.
Exercício interativo prático
Experimente este exercício preenchendo este código de exemplo.
# Collect all possible pairs using combinations()
possible_pairs = [*____(pokemon_types, ____)]
# Create an empty list called enumerated_tuples
____ = ____
# Append each enumerated_pair_tuple to the empty list above
for i,pair in enumerate(possible_pairs, 1):
enumerated_pair_tuple = (i,) + pair
enumerated_tuples.append(____)
# Convert all tuples in enumerated_tuples to a list
enumerated_pairs = [*____(____, enumerated_tuples)]
print(enumerated_pairs)