Aan de slagGa gratis aan de slag

Holistische conversielus

Een lijst met alle mogelijke Pokémon-typen is in je sessie geladen als pokemon_types. Voor het gemak is die al in de console afgedrukt.

Je wilt alle mogelijke paren van Pokémon-typen verzamelen. Je wilt elk van deze paren opslaan in een losse lijst, met een genummerde index als eerste element van elke lijst. Zo kun je het totale aantal mogelijke paren zien en heeft elk paar een gelabelde index.

De onderstaande lus is geschreven om deze taak uit te voeren:

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)

Laten we deze lus efficiënter maken met een holistische conversie.

Deze oefening maakt deel uit van de cursus

Efficiënte Python-code schrijven

Cursus bekijken

Oefeninstructies

  • combinations uit de module itertools is in je sessie geladen. Gebruik dit om een lijst possible_pairs te maken die alle mogelijke paren van Pokémon-typen bevat (elk paar heeft 2 Pokémon-typen).
  • Maak boven de for-lus een lege lijst enumerated_tuples aan.
  • Gebruik een ingebouwde functie om elke tuple in enumerated_tuples om te zetten naar een lijst.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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)
Code bewerken en uitvoeren