ComeçarComece de graça

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

Ver curso

Instruções do exercício

  • combinations, do módulo itertools, foi carregado na sua sessão. Use-o para criar uma lista chamada possible_pairs que contenha todos os pares possíveis de tipos de Pokémon (cada par tem 2 tipos de Pokémon).
  • Crie uma lista vazia chamada enumerated_tuples acima do loop for.
  • Use uma função embutida para converter cada tupla em enumerated_tuples em 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)
Editar e executar o código