1. ホーム
  2. python

[解決済み] フィールド名の変数を使用して、namedtupleのフィールドにアクセスするには?

2023-04-16 16:45:48

質問

名前付きタプルの要素に、以下のように名前でアクセスすることができます(*)。

from collections import namedtuple
Car = namedtuple('Car', 'color mileage')
my_car = Car('red', 100)
print my_car.color

しかし、アクセスしたいフィールドの名前を指定するために変数を使用するにはどうしたらよいでしょうか?例えば

field = 'color'
my_car[field] # doesn't work
my_car.field # doesn't work

実際の使用例としては、pandasのdataframeを繰り返しながら for row in data.itertuples() . 私は特定の列からの値に対して操作を行っており、私はこのループを含むメソッドのパラメータとして、名前によって使用する列を指定できるようにしたいと思います。

(*) ここから引用した例 . Python 2.7を使用しています。

どのように解決するのですか?

この場合 getattr

getattr(my_car, field)