IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • combinations dal modulo itertools è stato caricato nella tua sessione. Usalo per creare una lista chiamata possible_pairs che contenga tutte le possibili coppie di tipi di Pokémon (ogni coppia ha 2 tipi di Pokémon).
  • Crea una lista vuota chiamata enumerated_tuples sopra il ciclo for.
  • Usa una funzione built-in per convertire ciascuna tupla in enumerated_tuples in 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)
Modifica ed esegui il codice