web-dev-qa-db-ja.com

フィールド名の変数を使用して名前付きタプルのフィールドにアクセスする方法は?

私は次のように名前で名前付きタプルの要素にアクセスできます(*):

_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 for row in data.itertuples()を使用してデータフレームを反復処理していることです。特定の列の値に対して操作を行っています。このループを含むメソッドのパラメーターとして名前で使用する列を指定できます。

(*) ここから引用した例 。私はPython 2.7。

35
LangeHaare

getattrを使用できます

getattr(my_car, field)
47