Python/中級/Lesson 09
リスト内包表記
30分·theory
このチャプター
1/8
Python
2. 条件を追加 —
リスト内包表記
🎯 このレッスンを読み終えたら
このレッスンを読み終えると、以下の3つを自信を持ってできるようになります。
- ▸✅ リストのスライシング + 内包表記
- ▸✅ list と tuple の使い分け + 深いコピー (
copy.deepcopy) - ▸✅
sortとsortedの違い(元のリストが変更されるかどうか)
学習目標をチェックリストとして手元に置き、すべてに答えられるようになったらレッスンを閉じてください。
リスト内包表記6パターン — コード + 実行結果
[式 for 変数 in イテラブル if 条件] — リストを1行で作る構文。Pythonのアイデンティティ。
1. 最もシンプルな形
同じ結果を1行で。可読性が高い(変数 → 変換 → 出処の順)。
2. 条件を追加 — if
if はフィルター。式を適用する前に通過するかどうかを決定します。
3. 変換 — 文字列・dict への応用
4. dict / set 内包表記
5. ネスト(二重for) — 慎重に
⚠️ 3重以上のネストは読みにくい — 通常のforループの方が明確です。
6. 悪い例 — 内包表記の乱用
ルール: 二重forに条件が2つ以上あれば通常のforループを使う。
一行まとめ
ポイント: シンプルな場合にのみ使用する。3行を超えるなら通常のforループへ。
🐍 実際に試してみよう — リスト内包表記
上記の概念を実際にコードとして実行してみてください。値を変えながら動作を自分で確認するのが最も効果的な学習法です。
✏️ Python 코드
📟 コンソール出力
▶ 実行ボタンを押してください
🐍 Pyodideで実際のPythonを実行 — 初回は読み込みに3〜5秒
🤖 AIにこう依頼してみよう
このレッスンの概念を知っていれば、AIに具体的な指示が出せます。漠然とした「直して」ではなく、用語を使ったリクエスト — それがトークン節約の出発点です。
- ▸「このfor + appendをリスト内包表記に書き換えて」
- ▸「このコードで深いコピー(
copy.deepcopy)が必要か確認して」
なぜトークンが減るのか
概念を知らないと、AIの回答を受け取っても「それって何ですか?」と聞き直す必要があります。その「聞き直し」がトークンを消費します。概念を一度覚えれば、会話が一度で完結します。
先に読むとよい概念: set — 重複のない集合
次のおすすめ: ラムダ関数