[Python] So sortieren Sie Instanzen nach Instanzvariablen

Nicht nur auf Python beschränkt, beim Schreiben eines Programms gibt es viele Möglichkeiten, Listen (Arrays) und Wörterbücher zu sortieren. Viele dieser Methoden werden in Blog-Artikeln usw. vorgestellt.

Es gibt jedoch seltener als Listen und Wörterbücher, in denen Sie eine Liste von Instanzen nach Instanzvariablen sortieren möchten. Wenn Sie beispielsweise die folgende Klasse mit dem Namen "Student" haben, können Sie die Liste der Instanzen mit dem Namen "Students" nach "Score" sortieren.

class Student:
    def __init__(self, name, score):
        self.name = name
        self.score = score

a = Student('Taro', 70)
b = Student('Hanako', 90)
c = Student('Jiro', 80)
students = [a, b, c]

Verwenden Sie in diesem Fall die Funktion operator.attrgetter in wenigen Zeilen (fast eine Zeile) wie folgt. Kann schreiben.

from operator import attrgetter
students.sort(key=attrgetter('score'))
for s in students:
    print(s.name, s.score)
Taro 70
Jiro 80
Hanako 90

Wenn Sie in absteigender Reihenfolge sortieren möchten, setzen Sie einfach das Argument 'sort method reverse wie folgt auf True`:

from operator import attrgetter
students.sort(key=attrgetter('score'), reverse=True)
for s in students:
    print(s.name, s.score)
Hanako 90
Jiro 80
Taro 70

Recommended Posts

[Python] So sortieren Sie Instanzen nach Instanzvariablen
[Python] So sortieren Sie Instanzen nach Instanzvariablen
[Python] So sortieren Sie Diktate in Listen und Instanzen in Listen
Dynamisches Definieren von Variablen in Python
So installieren Sie Python
Sortieren durch Angabe einer Spalte im Python Numpy-Array.
[Python] So sortieren Sie nach dem N-ten M-ten Element eines mehrdimensionalen Arrays
[Python] So erweitern Sie Variablen in einer Zeichenfolge
So speichern Sie eine von Python gekratzte Tabelle in CSV
So installieren Sie Python [Windows]
python3: Verwendung der Flasche (2)
So aktualisieren Sie Pythons Tkinter auf 8.6
Wie benutzt man Python Argparse?
Python-Klassen- und Instanzvariablen
[Python] Verwendung von checkio
So definieren Sie Go-Variablen
So führen Sie Notepad ++ Python aus
So ändern Sie die Python-Version
Wie man in Python entwickelt
[Python] Wie man Skalar beurteilt
[Python] Verwendung von input ()
Wie benutzt man Python Lambda?
[Python] Verwendung von virtualenv
python3: Verwendung der Flasche (3)
python3: Wie man eine Flasche benutzt
Sortieren nach Datum in Python
Verwendung von Python-Bytes
[Python] So erstellen Sie eine Liste von Zeichenfolgen Zeichen für Zeichen
So wechseln Sie die Konfigurationsdatei, die von Python gelesen werden soll
[Python] Wie man mit Klassenvariablen mit Dekorator und Metaklasse spielt
So definieren Sie mehrere Variablen in einer Python for-Anweisung
So überschreiben Sie eine benutzerdefinierte Typmethode, die von Python Swig generiert wird
So installieren Sie Python mit Anaconda
[Python] Wie man PCA mit Python macht
[Python] Sortierbar nach mehreren Bedingungen sortieren
[Python] Wie man nCk ableitet (ABC156-D)
[Python] Verwendung der Pandas-Serie
So sammeln Sie Bilder in Python
Verwendung von Anfragen (Python Library)
Verwendung von SQLite in Python
[Einführung in Python] So analysieren Sie JSON
So erhalten Sie die Python-Version
Erste Schritte mit Python
[Python] Verwendung von Liste 3 Hinzugefügt
Wie man MySQL mit Python benutzt
Verwendung der Python-API von OpenPose
[Python] So tauschen Sie Array-Werte aus
So verpacken Sie C in Python
Verwendung von ChemSpider in Python
Python: Verwendung von pydub (Wiedergabe)
Verwendung von PubChem mit Python
So beschleunigen Sie Python-Berechnungen
So berechnen Sie das Datum mit Python
So greifen Sie über Python auf Wikipedia zu
Verwendung der Zip-Funktion von Python
[Nanonets] Wie poste ich Memo [Python]
Umgang mit Japanisch mit Python