[Python] - Named Tuple


今回はnamedtuplenamed tupleは従来のtupleとはやや異なる.従来のtupleはインデックスによってアクセスされ、各インデックスの役割を知るのは難しいが、名前の通りtupleは「name」という名前でアクセスされるため、その役割が分かりやすい.コードを見てみましょう.

一般的なチュートリアル

pt1 = (1.0,5.0)
pt2 = (2.5,1.5)
from math import sqrt
line_leng1 = sqrt((pt2[0] - pt1[0])**2 + (pt2[1] - pt1[1])**2)
コードでは、パレットが宣言され、「line leng 1」にアクセスするときにインデックスを使用してアクセスすることができます.そうであれば、前述したように、各インデックスがどれだけあるかを知るのは難しい.

コード結果値

print(line_leng1)

Name Tupleの使用

from collections import namedtuple
これはcollectionsというモジュールから名前tupleを取得するコードです.named tupleを使用するには、このコードを使用する必要があります.
Kim = namedtuple('Kim' ,'x y')
これはnamedtupleを宣言するコードです.kim変数の宣言方法はnamedtuple(「tuple name」,「要素」)です.宣言の仕方もいろいろあります.

Name tuple宣言

  • Point1 = namedtuple('Point', ['x','y'])
  • Point2 = namedtuple('Point', 'x, y')
  • Point3 = namedtuple('Point', 'x y')
  • Point4 = namedtuple('Point', 'x y x def', rename=True)
  • 宣言の4つ目の方法は、defがPythonで関数を作成する際に使用されるため、要素名ではないため、rename=TrueでPythonに名前を変更することができます.これでエラーは発生しません.
    pt1 = Kim(1.0,5.0)
    pt2 = Kim(2.5,1.5)
    
    line_leng2 = sqrt((pt2.x - pt1.x)**2 + (pt2.y - pt1.y)**2)

    コード結果値

    print(line_leng2)

    これは、上記の一般的なチュートリアルと同じ結果をもたらすコードです.しかし、名前付きtupleを使用して実現されています.「pt 1」変数として宣言されたtupleと命名されたkimの各要素の値を格納します.現在、pt 1のxは1.0、yは5.0を格納している.line leng 2が「pt 1」および「pt 2」に要素名x,yでアクセスしていることがわかります.名前を使ってアクセスするので、x、yの数を簡単に知ることができるという利点があります.