如何使用字段名称的变量访问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。
答
可以使用getattr
getattr(my_car, field)
'GETATTR(my_car,场)'或'my_car._asdict()[字段]'。 –
也可以尝试'mycar [field]',但是你可能会使用'for row in data'进行迭代。 –
@AshwiniChaudhary你应该发布它作为答案! – LangeHaare