2017-06-19 61 views
6

我可以通過名稱如下訪問一個名爲元組的元素(*):如何使用字段名稱的變量訪問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

回答

7

可以使用getattr

getattr(my_car, field) 
相關問題