Ciclo con conversione olistica
Un elenco di tutti i possibili tipi di Pokémon è stato caricato nella tua sessione come pokemon_types. È stato stampato nella console per comodità.
Vuoi raccogliere tutte le possibili coppie di tipi di Pokémon. Vuoi memorizzare ciascuna di queste coppie in una lista individuale con un indice numerato come primo elemento di ogni lista. Questo ti permette di vedere il numero totale di coppie possibili e fornisce un’etichetta indicizzata per ciascuna coppia.
Il ciclo qui sotto è stato scritto per svolgere questo compito:
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)
Rendiamo questo ciclo più efficiente usando una conversione olistica.
Questo esercizio fa parte del corso
Scrivere codice Python efficiente
Istruzioni dell'esercizio
combinationsdal moduloitertoolsè stato caricato nella tua sessione. Usalo per creare una lista chiamatapossible_pairsche contenga tutte le possibili coppie di tipi di Pokémon (ogni coppia ha2tipi di Pokémon).- Crea una lista vuota chiamata
enumerated_tuplessopra il ciclo for. - Usa una funzione built-in per convertire ciascuna tupla in
enumerated_tuplesin una lista.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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)