Wie der Zugriff auf ein Feld einer namedtuple über eine variable für den Namen des Feldes?
Kann ich Zugriff auf Elemente einer benannten Tupel von Namen wie folgt(*):
from collections import namedtuple
Car = namedtuple('Car', 'color mileage')
my_car = Car('red', 100)
print my_car.color
Aber wie kann ich eine variable zu verwenden, geben Sie den Namen des Feldes, die ich aufrufen will? E. g.
field = 'color'
my_car[field] # doesn't work
my_car.field # doesn't work
Mein tatsächlicher Anwendungsfall ist, dass ich bin, Durchlaufen ein pandas dataframe mit for row in data.itertuples()
. Ich mache eine operation auf dem Wert aus einer bestimmten Spalte, und ich möchte in der Lage sein, um die Spalte festzulegen, dass die Verwendung von Namen als parameter an die Methode mit dieser Schleife.
(*) Beispiel genommen von hier. Ich verwende Python 2.7.
getattr(my_car, field)
odermy_car._asdict()[field]
.- Versuchen Sie auch
mycar[field]
aber dann könnten Sie die Iteration mitfor row in data
. - sollten Sie es geschrieben als Antwort!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie
getattr