Loop de conversão holística
Uma lista com todos os possíveis tipos de Pokémon foi carregada na sua sessão como pokemon_types. Ela foi impressa no console para sua conveniência.
Você quer reunir todos os pares possíveis de tipos de Pokémon. Cada par deve ser armazenado em uma lista individual com um índice enumerado como primeiro elemento de cada lista. Isso permite ver 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 do exercício
combinations, do móduloitertools, foi carregado na sua sessão. Use-o para criar uma lista chamadapossible_pairsque contenha todos os pares possíveis de tipos de Pokémon (cada par tem2tipos de Pokémon).- Crie uma lista vazia chamada
enumerated_tuplesacima do loop for. - Use uma função embutida para converter cada tupla em
enumerated_tuplesem uma lista.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Collect all possible pairs using combinations()
possible_pairs = [*____(pokemon_types, ____)]
# Create an empty list called enumerated_tuples
____ = ____
for i,pair in enumerate(possible_pairs, 1):
enumerated_pair_tuple = (i,) + pair
enumerated_tuples.append(enumerated_pair_tuple)
# Convert all tuples in enumerated_tuples to a list
enumerated_pairs = [*____(____, enumerated_tuples)]
print(enumerated_pairs)