全体変換のループ
可能なすべてのポケモンタイプの一覧が、pokemon_types としてセッションに読み込まれています。確認しやすいようにコンソールに出力済みです。
すべてのポケモンタイプの組み合わせ(ペア)を集めたいとします。各ペアを個別のリストとして保存し、その各リストの先頭要素には連番インデックスを入れたいと考えています。こうすることで、可能なペアの総数が分かり、各ペアにインデックス付きのラベルが付きます。
この作業を行うために、以下のループが書かれています。
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はすでにセッションに読み込まれています。これを使って、すべてのポケモンタイプのペア(各ペアは2つのタイプ)を含むリストpossible_pairsを作成してください。- for ループの上で、空のリスト
enumerated_tuplesを作成してください。 - 組み込み関数を使って、
enumerated_tuples内の各タプルをリストに変換してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# 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)