Pythonischer Weg, um die Liste der namedtuples nach Feldnamen zu sortieren

Möchte ich so Sortieren Sie eine Liste der benannten Tupel, ohne sich zu erinnern, den index des Feldnamens. Meine Lösung ziemlich umständlich und war in der Hoffnung jemand hätte eine elegantere Lösung.

from operator import itemgetter
from collections import namedtuple

Person = namedtuple('Person', 'name age score')
seq = [
    Person(name='nick', age=23, score=100),
    Person(name='bob', age=25, score=200),
]

# sort list by name
print(sorted(seq, key=itemgetter(Person._fields.index('name'))))
# sort list by age
print(sorted(seq, key=itemgetter(Person._fields.index('age'))))

Dank,
Nick

InformationsquelleAutor der Frage Nick | 2012-08-23

Schreibe einen Kommentar