← クエスト一覧

クエスト57:itertoolsを使おう

スライド 1 / 6
コーデ
💻 コード例
実行結果
← クエスト一覧
🐍 Python / Quest 57 / 85

クエスト57:itertoolsを使おう

発展 +10 XP
🏠
今回の課題
[1, 2, 3] から2つを選ぶ組み合わせをすべて表示しよう。
📖 解説を見る
🔀 itertools って何?

組み合わせや順列など、「並べ方・選び方」を全部作ってくれる便利ツールが詰まったモジュールです。

✏️ 主な道具:
from itertools import combinations
for c in combinations(['A', 'B', 'C'], 2):
    print(c)

 → ('A', 'B')
('A', 'C')
('B', 'C')
(組み合わせ)
permutations(順列・順番も区別)、product(すべての掛け合わせ)などもあります。

📋 作るもの:
combinations[1, 2, 3] と「選ぶ数」をわたす(今回は 2 つ選ぶ)
for でまわして、出てきた組み合わせをそのまま1つずつ表示する
・結果はタプルなので (1, 2) の形で出る。全部で3行

💡 どこで使う?

「ありうるパターンを全部試す」ときに使います。総当たりの対戦表、くじの当たりの組み合わせ、選択肢の全パターン検証など。自分で二重・三重ループを書かなくても、正確に全列挙できます。

⚠️ ポイント:
combinations(リスト, 選ぶ数) は順番を区別しない
・結果はタプルで1つずつ出てくる
ヒントを見る
combinations(リスト, 選ぶ数) を for でまわすと、組み合わせが1つずつ出てくるよ。出てきたものを加工せず、そのまま表示しよう。
期待する出力
(1, 2)
(1, 3)
(2, 3)
📄 見本
「答えを見る」を押すと、お手本のコードが出ます。クリックでコピーできます。
💻 コードエディタ
実行すると結果がここに表示されます
正解!見本と同じになりました。
次へ →
🏠 ホームへ

れんしゅうもんだい

☑ 0 / 3 正解 レッスンに戻る

全問正解でクエストクリア!

未挑戦

問題 1: permutations で ['A', 'B', 'C'] の2文字の順列をすべて表示しよう!

実行結果
実行できたよ!
もう一度チャレンジ!
📄 見本の出力
('A', 'B') ('A', 'C') ('B', 'A') ('B', 'C') ('C', 'A') ('C', 'B')
未挑戦

問題 2: product で [0, 1] の2回の直積(2ビット全パターン)を表示しよう!

実行結果
実行できたよ!
もう一度チャレンジ!
📄 見本の出力
(0, 0) (0, 1) (1, 0) (1, 1)
未挑戦

問題 3: chain で [1, 2] と [3, 4] と [5] をつなげて1行ずつ表示しよう!

実行結果
実行できたよ!
もう一度チャレンジ!
📄 見本の出力
1 2 3 4 5
コピーしました!