Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのタプルとは?基本の使い方とnamedtupleの活用法をわかりやすく解説

Pythonにおけるタプルの基本

タプル(tuple)は、複数の値をカンマで区切って括弧()の中に並べることで定義できる、Pythonの基本的なデータ構造です。リストとよく似ていますが、一度作成すると要素を変更できない「イミュータブル(変更不可)」なオブジェクトである点が大きな特徴です。

タプル内の各フィールドの値には、インデックス(0から始まる番号)を使ってアクセスします。以下は、学生情報をタプルで表現した例です。

>>> student = (1, "Ravi", 23, 546)
>>> rollno = student[0]
>>> name = student[1]
>>> age = student[2]
>>> marks = student[3]
>>> print(rollno, name, age, marks)
1 Ravi 23 546

この例では、インデックス0が学籍番号、1が名前、2が年齢、3が点数に対応しています。しかし、数値によるアクセスだけでは、どの位置にどのデータが入っているのか分かりにくく、コードの可読性や保守性が低下するという課題があります。

namedtupleでフィールド名を使ってアクセスする

この問題を解決してくれるのが、標準ライブラリのcollectionsモジュールに用意されているnamedtuple()ファクトリ関数です。namedtupleを使うと、定義時に各フィールドに名前を指定したタプルを作成でき、インデックスだけでなくフィールド名でも値へアクセスできるようになります。

>>> from collections import namedtuple
>>> student = namedtuple('student', ('rollno, name, age, marks'))
>>> s1 = student(1, "Ravi", 23, 546)
>>> s1
student(rollno=1, name='Ravi', age=23, marks=546)
>>> s1.rollno
1
>>> s1.name
'Ravi'
>>> s1.age
23
>>> s1.marks
546

namedtupleでは、第1引数に型名、第2引数にカンマ区切り(またはスペース区切り)のフィールド名を指定します。作成されたオブジェクトは通常のタプルと同じくイミュータブルでありながら、属性のように直感的に値を参照できるため、コードの可読性と安全性が大幅に向上します。

まとめ

タプルは複数の値をひとまとめに扱える軽量なデータ構造で、変更しない固定データの保持に最適です。さらにnamedtupleを活用すれば、フィールド名によるアクセスが可能になり、より読みやすくバグの少ないコードを書けるようになります。

  1. Pythonのデフォルト引数とは?基本的な使い方をサンプルコードで解説

    Pythonでは、関数の引数にデフォルト値(初期値)を設定できます。関数を呼び出す際にその引数が省略された場合、自動的にデフォルト値が適用される仕組みです。 デフォルト引数の基本 Pythonは、関数引数の構文やデフォルト値の扱い方において、他のプログラミング言語とは少し異なる独自のアプローチを採用しています。デフォルト値とは、関数呼び出し時に引数の値が渡されなかった場合に、その引数が取る値のことです。 デフォルト値は、代入演算子(=)を使って設定します。以下がデフォルト引数の典型的な構文です。この例では、foo パラメータに Come here! というデフォルト値が設定されています。 de

  2. Pythonの関数属性とは?getattr・setattrを使った属性の設定と取得方法を解説

    Pythonでは「すべてがオブジェクト」という設計思想のもと、ほぼすべてのデータに属性やメソッドが備わっています。実は関数もオブジェクトであり、他のオブジェクトと同じように属性(アトリビュート)を持つことができます。すべての関数には、組み込み属性として __doc__ が用意されています。これは関数のソースコード内に定義されたドキュメント文字列(docstring)を返す属性です。さらに、Pythonでは既存の属性を参照するだけでなく、関数に対して新しい属性を自由に追加し、後からその値を取得することも可能です。属性を操作するための組み込み関数:getattr と setattr属性の扱いには、