Całościowa konwersja w pętli
Lista wszystkich możliwych typów Pokémonów została wczytana do twojej sesji jako pokemon_types. Dla wygody jest wyświetlana w konsoli.
Chcesz zebrać wszystkie możliwe pary typów Pokémonów. Każdą z tych par zamierzasz przechować w osobnej liście, w której pierwszym elementem jest indeks wyliczeniowy. Dzięki temu możesz zobaczyć łączną liczbę możliwych par i przypisać każdej z nich etykietę z indeksem.
Poniższa pętla została napisana w celu wykonania tego zadania:
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)
Sprawmy, że ta pętla będzie bardziej wydajna, korzystając z całościowej konwersji.
To ćwiczenie jest częścią kursu
Wydajny kod w Pythonie
Instrukcje do ćwiczenia
- Funkcja
combinationsz modułuitertoolszostała wczytana do twojej sesji. Użyj jej, aby utworzyć listępossible_pairszawierającą wszystkie możliwe pary typów Pokémonów (każda para składa się z2typów). - Utwórz pustą listę o nazwie
enumerated_tuplespowyżej pętli for. - Użyj wbudowanej funkcji, aby przekonwertować każdą krotkę z listy
enumerated_tuplesna listę.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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)