Bucle for de conversión holística
Se ha cargado en tu sesión una lista de todos los tipos de Pokémon posibles como pokemon_types
. Se ha impreso en la consola para mayor comodidad.
Te gustaría reunir todas las parejas posibles de tipos de Pokémon. Quieres almacenar cada uno de estos pares en una lista individual con un índice enumerado como primer elemento de cada lista. Esto te permite ver el número total de pares posibles y proporciona una etiqueta indexada para cada par.
Para realizar esta tarea se escribió el bucle siguiente:
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)
Hagamos este bucle más eficiente utilizando una conversión holística.
Este ejercicio forma parte del curso
Escribir código Python eficiente
Instrucciones del ejercicio
combinations
del móduloitertools
se ha cargado en tu sesión. Utilízalo para crear una lista llamadapossible_pairs
que contenga todas las parejas posibles de tipos de Pokémon (cada pareja tiene2
tipos de Pokémon).- Crea una lista vacía llamada
enumerated_tuples
encima del bucle for. - Utiliza una función integrada para convertir cada tupla de
enumerated_tuples
en una lista.
Ejercicio interactivo práctico
Prueba este ejercicio completando el código de muestra.
# 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)