如何使用字段名称的变量访问namedtuple的字段?

问题描述:

我可以通过名称如下访问一个名为元组的元素(*):如何使用字段名称的变量访问namedtuple的字段?

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 

我的实际使用情况是我通过一个数据帧的大熊猫与迭代for row in data.itertuples()。我正在对来自特定列的值进行操作,并且我希望能够指定按名称使用的列作为包含此循环的方法的参数。

(*)example taken from here。我正在使用Python 2.7。

+1

'GETATTR(my_car,场)'或'my_car._asdict()[字段]'。 –

+0

也可以尝试'mycar [field]',但是你可能会使用'for row in data'进行迭代。 –

+0

@AshwiniChaudhary你应该发布它作为答案! – LangeHaare

可以使用getattr

getattr(my_car, field)