◆AI分析◆ ペコサンのブログ

AIがすごい!あなたのお悩みにAI回答がズバッと解決!?

AIが解説!【データ構造】 Python タプル、タプルパッキング、シーケンスアンパッキングについて


タプル、タプルパッキング、シーケンスアンパッキングは、Pythonで複数の値を扱う際にとても便利な機能となっています。以下、それぞれについて具体例を交えて解説します。

タプルとは

  • 定義
    タプルは順序付けられた要素の集合で、リストと似ていますが一度作成すると**変更できない(イミュータブル)**点が異なります。

  • 表記方法
    通常は丸括弧 () で囲って作成しますが、括弧を省略してカンマで区切るだけでもタプルとして扱われます。

  • t1 = (1, 2, 3) # 丸括弧を使用したタプル t2 = 4, 5, 6 # 括弧を省略したタプルパッキング print(t1) # 出力: (1, 2, 3) print(t2) # 出力: (4, 5, 6)

タプルパッキング

  • 概要
    タプルパッキングとは、複数の値をカンマで区切ることで自動的にタプルにまとめる仕組みのことです。

  • ポイント

    • 括弧がなくても、カンマで区切ればPythonは自動的にタプルとして認識します。

    • この機能は、複数の値を返す関数の戻り値などでよく利用されます。

  • # 数値をカンマで区切ってタプルにパック packed = 10, 20, 30 print(packed) # 出力: (10, 20, 30)

シーケンスアンパッキング

  • 概要
    シーケンスアンパッキングは、タプルやリストなどのシーケンス型の要素を、複数の変数に一度で展開する操作です。

  • 注意点

    • 左辺の変数の数とシーケンス内の要素の数が一致していなければエラーになります。

    • アスタリスク * を使うことで、残りの要素をリストとしてまとめることも可能です。

  • 例 1: 基本的なアンパッキング

    t = (1, 2, 3) a, b, c = t print(a) # 出力: 1 print(b) # 出力: 2 print(c) # 出力: 3
  • 例 2: アスタリスクを使ったアンパッキング

    numbers = (10, 20, 30, 40, 50) first, *middle, last = numbers print(first) # 出力: 10 print(middle) # 出力: [20, 30, 40](middleはリストになる) print(last) # 出力: 50

まとめ

  • タプル
    複数の値を保持し、作成後に変更できないシーケンス型です。

  • タプルパッキング
    カンマで区切って値を記述するだけで、Pythonが自動的にタプルにまとめてくれる機能です。

  • シーケンスアンパッキング
    タプルやリストの各要素を複数の変数へ同時に割り当てる操作で、コードを簡潔に記述できます。

これらの機能を活用することで、複数の値の取り扱いやデータの整理が効率的に行え、読みやすく保守しやすいコードを書くことができます。