2017-06-19 12 views
6

tôi có thể truy cập vào các yếu tố của một tuple tên theo tên như sau (*):Làm thế nào để truy cập vào một trường của một tên tập tin bằng cách sử dụng một biến cho tên trường?

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

Nhưng làm thế nào tôi có thể sử dụng một biến để xác định tên của trường tôi muốn truy cập? Ví dụ.

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

Trường hợp sử dụng thực tế của tôi là tôi đang chuyển qua khung dữ liệu gấu với for row in data.itertuples(). Tôi đang thực hiện một phép toán trên giá trị từ một cột cụ thể và tôi muốn có thể chỉ định cột để sử dụng theo tên như một tham số cho phương thức chứa vòng lặp này.

(*) example taken from here. Tôi đang sử dụng Python 2.7.

+1

'getattr (my_car, lĩnh vực) 'hoặc' my_car._asdict() [trường] '. –

+0

Cũng thử 'mycar [field]' nhưng sau đó bạn có thể lặp lại bằng cách sử dụng 'cho hàng trong dữ liệu'. –

+0

@AshwiniChaudhary bạn nên đăng nó làm câu trả lời! – LangeHaare

Trả lời

7

Bạn có thể sử dụng getattr

getattr(my_car, field) 
Các vấn đề liên quan