始める無料で始める

全体変換のループ

可能なすべてのポケモンタイプの一覧が、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)
コードを編集して実行