整體轉換迴圈
所有可能的 Pokémon 類型清單已載入到你的工作階段為 pokemon_types,並已為方便起見印在主控台。
你想要收集所有可能的 Pokémon 類型配對。你希望將每個配對存成一個個別的清單,且在每個清單的第一個元素放入編號索引。這能讓你看到所有可能配對的總數,並為每個配對提供帶索引的標籤。
以下的迴圈是為了完成這項工作而撰寫的:
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)
讓我們用整體轉換的方式,讓這段迴圈更有效率。
本練習屬於課程
撰寫高效的 Python 程式碼
練習說明
itertools模組中的combinations已載入到你的工作階段。使用它來建立名為possible_pairs的清單,內容為所有可能的 Pokémon 類型配對(每個配對包含2種 Pokémon 類型)。- 在 for 迴圈上方建立一個名為
enumerated_tuples的空清單。 - 使用內建函式將
enumerated_tuples中的每個 tuple 轉成 list。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# 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)