Aan de slagBegin gratis

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

Bekijk cursus

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.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan 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