Je peux accéder aux éléments d'un tuple nommé par son nom comme suit (*):
from collections import namedtuple
Car = namedtuple('Car', 'color mileage')
my_car = Car('red', 100)
print my_car.color
Mais comment utiliser une variable pour spécifier le nom du champ auquel je souhaite accéder? Par exemple.
field = 'color'
my_car[field] # doesn't work
my_car.field # doesn't work
Mon cas d'utilisation actuel est que je parcourt une base de données pandas avec for row in data.itertuples()
] _. Je fais une opération sur la valeur d'une colonne particulière et je veux être capable de spécifier la colonne à utiliser par nom en tant que paramètre de la méthode contenant cette boucle.
(*) exemple tiré d'ici . J'utilise Python 2.7.
Vous pouvez utiliser getattr
getattr(my_car, field)