[Python] So sortieren Sie Diktate in Listen und Instanzen in Listen

Das Sortieren von Listen ist üblich, aber hier erfahren Sie, wie Sie Diktate in Listen und Instanzen in Listen sortieren. Alle Sorten sind in aufsteigender Reihenfolge. Verwenden Sie die eingebaute Funktion "sortiert" in sort.

Bestätigte Python-Version

Wenn Sie die Standardbibliotheksdatenklassen nicht verwenden, sollte dies wie 3.6 funktionieren

dict in list

Im Fall von dict in list muss das Schlüsselargument der sortierten Funktion angegeben werden. Sie können Lambda verwenden, wenn Sie den Schlüssel angeben, und Lambda x: x ['a'] als anonyme Funktion verwenden, aber laut dem Beamten scheint es schneller zu sein, den Item Getter des Standardbibliotheksoperators zu verwenden (ich habe ihn nicht überprüft, daher ist es nichts. Ich kann nicht sagen).

https://docs.python.org/ja/3/howto/sorting.html#operator-module-functions

Python bietet schnelle und benutzerfreundliche Accessor-Funktionen. Das Operatormodul verfügt über die Funktionen itemgetter (), attrgetter () und methodcaller ().

from operator import itemgetter
person_list = [{'name': 'a', 'age': 4}, {'name': 'b', 'age': 3}, {'name': 'c', 'age': 10}, {'name': 'd', 'age': 2}, {'name': 'e', 'age': 1}]
sorted(person_list, key=itemgetter('age'))
[{'name': 'e', 'age': 1},
 {'name': 'd', 'age': 2},
 {'name': 'b', 'age': 3},
 {'name': 'a', 'age': 4},
 {'name': 'c', 'age': 10}]

instance in list

Geben Sie wie bei dict in list die Parameter an, die Sie im Schlüsselargument der sortierten Funktion sortieren möchten. Verwenden Sie beispielsweise attr letter.

Sobald Sie ein Diktat in einer Liste mit Quellen erstellt und dann eine Instanz mit einer Liste (map (...)) erstellt haben, gibt es keine tiefe Bedeutung mehr. Ich wollte es nur einfacher machen, indem ich die person_list umleitete, die im Diktat in der Liste verwendet wurde.

from dataclasses import dataclass
from operator import attrgetter

@dataclass
class Person:
    name: str
    age: int

sources = [{'name': 'a', 'age': 4}, {'name': 'b', 'age': 3}, {'name': 'c', 'age': 10}, {'name': 'd', 'age': 2}, {'name': 'e', 'age': 1}]
person_list = list(map(lambda x: Person(**x), sources))
sorted(person_list, key=attrgetter('age'))
[Person(name='e', age=1),
 Person(name='d', age=2),
 Person(name='b', age=3),
 Person(name='a', age=4),
 Person(name='c', age=10)]

Wenn Sie in absteigender Reihenfolge sortieren möchten, setzen Sie das umgekehrte Argument der sortierten Funktion auf True.

Reference

Recommended Posts

[Python] So sortieren Sie Diktate in Listen und Instanzen in Listen
Verwendung ist und == in Python
So löschen Sie einen Taple in einer Liste (Python)
So generieren Sie eine Sequenz in Python und C ++
[Python] So sortieren Sie Instanzen nach Instanzvariablen
Wie man Autokorrelation und partielle Autokorrelation mit Python zeichnet
So entfernen Sie doppelte Elemente in der Python 3-Liste
[Python] Verwendung von Liste 1
Wie man in Python entwickelt
[Python] So geben Sie Listenwerte der Reihe nach aus
[Python] Wie man PCA mit Python macht
So sammeln Sie Bilder in Python
Verwendung von SQLite in Python
[Python] Verwendung von Liste 3 Hinzugefügt
Wie man MySQL mit Python benutzt
So verpacken Sie C in Python
Verwendung von ChemSpider in Python
Verwendung von PubChem mit Python
Umgang mit Japanisch mit Python
So tauschen Sie Elemente in einem Array in Python aus und wie kehren Sie ein Array um.
In Python werden die Elemente in der Liste sortiert und als Elemente und Vielfache ausgegeben.
Nützliche Tricks in Bezug auf Listen und Anweisungen in Python
Vergleich der Verwendung von Funktionen höherer Ordnung in Python 2 und 3
So erhalten Sie den letzten (letzten) Wert in einer Liste in Python
So erhalten Sie eine Liste der integrierten Ausnahmen für Python
Ausführen externer Shell-Skripte und -Befehle in Python
So melden Sie sich mit Python bei AtCoder an und senden automatisch
So erreichen Sie den Zugriff durch Attribut und Beibehaltung der Einfügereihenfolge in Python dict
So speichern Sie eine Python-Funktion im Wert eines Wörterbuchs (dict) und rufen die Funktion gemäß dem Schlüssel auf
So verpacken und verteilen Sie Python-Skripte
[Einführung in Python] Wie verwende ich eine Klasse in Python?
So installieren Sie OpenCV in Cloud9 und führen es in Python aus
So vergleichen Sie Listen und rufen allgemeine Elemente in einer Liste ab
Dynamisches Definieren von Variablen in Python
So installieren und verwenden Sie pandas_datareader [Python]
So machen Sie R chartr () in Python
[Itertools.permutations] So löschen Sie eine Sequenz in Python
So erstellen Sie eine Instanz einer bestimmten Klasse aus dict mit __new__ () in Python
Verwendung von Funktionen in separaten Dateien Perl-Version und Python-Version
So arbeiten Sie mit BigQuery in Python
[Python] So löschen Sie eine Zeile / Spalte in einer Tabelle (Liste der Optionen für die Drop-Methode)
Unterschied zwischen Anhängen und + = in der Python-Liste
So zeigen Sie die neunundneunzig Tabelle in Python an
So extrahieren Sie einen Polygonbereich in Python
So überprüfen Sie die Version von opencv mit Python
Python: Verwendung von Einheimischen () und Globalen ()
[ROS2] Beschreibung der Neuzuordnung und der Parameter beim Start des Python-Formats
So wechseln Sie die Python-Version in Cloud9
So passen Sie den Bildkontrast in Python an
Verwendung von __slots__ in der Python-Klasse
So füllen Sie mit Python dynamisch Nullen aus
[Python] Berechnen von MAE und RMSE
Verwendung von Python zip und Aufzählung
Zusammenfassung der Verwendung der Python-Liste
Verwendung regulärer Ausdrücke in Python
So löschen Sie mehrere angegebene Positionen (Indizes) in einer Python-Liste
Ich war süchtig nach falschen Klassenvariablen und Instanzvariablen in Python
So zeigen Sie Hello World in Python an
Wie schreibe ich Ruby to_s in Python