コース一覧
    Pythonコレクション
    タプルアンパック

    Pythonコレクション

    リスト、辞書、集合、タプルなどのコレクションを学び、複数のデータを適切に扱えるようにします。

    1
    リストと辞書
    01. リストの追加と削除15分
    02. スライス15分
    03. 辞書の基本15分
    04. 辞書を走査15分
    05. keyでソート15分
    06. setで重複除去15分
    07. リスト内包表記15分
    08. タプルアンパック15分
    09. つくる:カテゴリ別集計15分
    10. 第7章クイズ10分

    タプルアンパック

    リストとタプル

    pair[0] と pair[1] では、何が入っているのか分からない

    2 つの値をひとまとめに持ち運びたいとき、丸かっこで並べた形が使えます。これが タプル です。

    Python

    point = (10, 20)
    print(point[0])
    print(point[1])

    10 と 20 が出ます。番号で取り出せるところはリストと同じですが、point[0] = 30 のように書き換えることはできず、TypeError になります。作ったら変えない、という約束が型として表れています。

    とはいえ、番号で取り出すコードは読み返したときに何番が何なのか分かりません。タプルの本当の便利さは、変数に分けて受け取れる ところにあります。

    Python

    x, y = point

    左辺にカンマで変数を 2 つ並べると、x に 10、y に 20 が入ります。これを アンパック と呼びます。名前が付くので、以降のコードが読めるものになります。第 6 章で作った 2 つの値を返す関数を total, average = ... と受け取れたのも、同じ仕組みでした。

    1 周ごとに [0] と [1] を書き続けたくない

    組が並んだリストを回すとき、for の変数を 2 つ書けば、1 周ごとに自動でアンパックされます。

    Python

    sizes = [("S", 1), ("M", 2), ("L", 3)]
    for label, number in sizes:
        print(label, number)

    S 1、M 2、L 3 と出ます。前に使った enumerate や items() も、返していたのは「2 つの値の組」でした。同じ仕組みが名前を変えて何度も出てきているだけです。

    アンパックはリストにも効きます。["S", 1] のような 2 要素のリストでも同じように分解できます。分解できるかどうかは、タプルかリストかではなく 要素の数が合っているか で決まります。

    数が合わないと ValueError になり、メッセージに unpack という単語が出ます。この単語を見たら、受け取る変数の数と組の中身の数を数え直します。

    やってみよう

    関数 unpack_pairs(pairs) を実装してください。pairs は ["品名", 金額] という 2 要素の組が並んだリストです。1 組ずつアンパックして受け取り、"品名 金額円" という文字列を作り、それを集めた リスト を return します。

    for の変数を 2 つ書く形で分解してください。品名と金額の間は半角スペース 1 つ、金額のうしろに 円 を付けます。金額は int ですが、f-string の中に書けば str() は要りません。

    戻り値はタプルではなくリストです。この学習環境の判定はリスト形式で行うためで、手元で試すときはタプルのままでも構いません。空リストのときは空リスト [] を返します。

    要件

    1. 関数名は unpack_pairs で、引数は pairs の1つ
    2. for name, price in pairs の形でアンパックして受け取る
    3. 1組ごとに "品名 金額円" の文字列を作る。品名と金額の間は半角スペース1つ
    4. 文字列を集めたリストを return する。並び順は元のままにする

    ヒント

    for name, price in pairs: と書けば1周ごとに2つの変数に分かれます

    1行は f"{name} {price}円" で作れます

    作った文字列は append でリストにためて、最後にそのリストを返します

    戻り値はタプルではなくリストです

    生田 陸人
    監修生田 陸人
    ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
    編集 ゆめさく編集部·公開 2026/08/05·更新 2026/08/26

    関連レッスン

    • つくる:カテゴリ別集計

      第7章の総仕上げ。支出をカテゴリごとに合計した辞書を返す total_by_category を作る

    • 第7章クイズ

      リストのメソッド、スライス、辞書のキー、set、内包表記の理解を5問で確認する

    • リスト内包表記

      for と if を1行に畳むリスト内包表記で、食費の支出だけを抜き出す

    • setで重複除去

      set で重複を消し、sorted で並びを固定して使ったカテゴリ一覧を作る

    このレッスンに出てくる用語

    意味があいまいなまま進んだ語は、ここから読み直せます。

    • タプル順序付きで変更不可のシーケンス
    • リスト順序付きで複数の値を扱うデータ構造
    • 変数データに名前をつけて参照する仕組み
    • 関数処理に名前を付けて再利用できる単位
    • f-stringf"..." で変数を埋め込む文字列記法
    • 戻り値呼び出し元への返答を表す点線矢印
    • 引数位置引数=順番で渡す。
    main.py
    エディタを読み込んでいます

    メモ

    タプルアンパック

    ⌘S で保存