ComeçarComece gratuitamente

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

Ver Curso

Instruções de exercício

  • combinations do módulo itertools foi carregado em sua sessão. Use-o para criar uma lista chamada possible_pairs que contém 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.
  • 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)
Editar e executar código