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) oder my_car._asdict()[field].
  • Versuchen Sie auch mycar[field] aber dann könnten Sie die Iteration mit for row in data.
  • sollten Sie es geschrieben als Antwort!
InformationsquelleAutor LangeHaare | 2017-06-19
Schreibe einen Kommentar