C
Python/入門/Lesson 04

リスト (List)

1時間·theory
このチャプター
3/7
Python

リスト (List)

🎯 このlessonを読み終えたら

このlessonを読み終えたら、以下の3つを自信を持ってできるようになります。

  • ✅ リストのスライシング + 内包表記
  • ✅ list vs tuple の使い分け + 深いコピー (copy.deepcopy)
  • ✅ sort vs sorted (元データの変更有無)

学習目標をチェックリストとして持ち、すべて答えられるようになったらlessonを閉じてください。

listの8つの核心 — コード + 実行結果

list = 順序あり + 変更可能 + あらゆる型を格納できるデータ構造。Pythonで最もよく使われます。

💻 ショッピングカートの操作 + スライシング + ソート
# ===== 入力: ショッピングカート =====
cart = ["リンゴ", "バナナ", "牛乳"]

# ===== 処理: アイテムの追加/削除 =====
cart.append("卵")         # 末尾に追加
cart.append("豆腐")
print(f"追加後: {cart}")    # ['リンゴ', 'バナナ', '牛乳', '卵', '豆腐']

cart.remove("バナナ")        # 値で削除
last = cart.pop()           # 最後の要素を取り出す (削除 + 返却)
print(f"削除後: {cart}")    # ['リンゴ', '牛乳', '卵']
print(f"取り出した項目: {last}")  # 豆腐

# ===== インデックスアクセス =====
print(cart[0])              # リンゴ (最初)
print(cart[-1])             # 卵 (最後)

# ===== スライシング: [start:end] endは含まない =====
numbers = [10, 20, 30, 40, 50]
print(numbers[1:4])         # [20, 30, 40]
print(numbers[:3])          # [10, 20, 30] (最初から3つ)
print(numbers[2:])          # [30, 40, 50] (3番目から最後まで)

# ===== 長さおよびソート =====
scores = [88, 72, 95, 61, 83]
print(f"項目数: {len(scores)}")        # 5
print(f"ソート: {sorted(scores)}")        # [61, 72, 83, 88, 95]
print(f"最大値: {max(scores)}")         # 95
print(f"合計: {sum(scores)}")           # 399

💡 核心ポイント

1. 負のインデックス: -1は最後の要素
2. スライシング: [開始:終了:ステップ]
3. sort()は元データを変更し、sorted()は新しいリストを返す

Pythonの基本データ構造: リストは順序ありの可変コレクション、タプルは不変、辞書はキーと値のペア、セットは一意な値の集合です。リスト内包表記 [x for x in lst if cond] で簡潔に生成できます。dict.get(key, default) で安全に値を取得できます。collectionsモジュール: Counter、defaultdict、deque、OrderedDict。

🐍 実行してみよう — リスト (List)

上記の概念を実際にコードとして実行してみてください。値を変えながら動作を自分で確認するのが最も速い学習法です。
✏️ Python 코드
📟 コンソール出力
▶ 実行ボタンを押してください
🐍 Pyodideで実際のPythonを実行 — 初回は読み込みに3〜5秒

🤖 AIへのリクエスト例

このlessonの概念を知っていれば、AIに具体的に指示できます。漠然とした「直して」ではなく、語彙を持ったリクエスト — それがトークン節約の出発点です。

  • 「このfor + appendをリスト内包表記に変えて」
  • 「このコードに深いコピー (copy.deepcopy) が必要か確認して」

なぜトークンを節約できるのか

概念を知らないままAIの回答を受け取っても、「それって何ですか?」とまた聞き直す必要があります。その「聞き直し」がトークンを消費します。概念を一度理解しておけば、会話が一回で終わります

リストを徹底攻略 - Python