[Python] Sortierbar nach mehreren Bedingungen sortieren

Eingebaute Funktion: sortiert

sorted(iterable[, key][, reverse])

Referenzseite: 2. Dokumentation zu den integrierten Funktionen von Python3.5.1

Sortierung unter mehreren Bedingungen

Warum wollten Sie nach mehreren Bedingungen sortieren?

Nach Erhalt der Dateinamenliste mit Glob etc. Ich möchte Dateien mit Dateinamen (test_file_1.txt, test_file_2.txt,… test_file_19.txt, test_file_20.txt) nach Nummer sortieren. Wenn Sie einfach versuchen zu sortieren

sort_test_1.py


>>> import random
>>> file_names = ["test_file_{}.txt".format(num) for num in range(1, 21)]
>>> random.shuffle(file_names)
>>> sorted(file_names)
['test_file_1.txt', 'test_file_10.txt', 'test_file_11.txt', 
 'test_file_12.txt', 'test_file_13.txt', 'test_file_14.txt',
 'test_file_15.txt', 'test_file_16.txt', 'test_file_17.txt',
 'test_file_18.txt', 'test_file_19.txt', 'test_file_2.txt',
 'test_file_20.txt', 'test_file_3.txt', 'test_file_4.txt',
 'test_file_5.txt', 'test_file_6.txt', 'test_file_7.txt',
 'test_file_8.txt', 'test_file_9.txt']

Da wir von vorne beginnen, wollen wir, dass auf "1" "2" folgt, aber es ist "10". (In diesem Fall wird das Problem durch Ändern des Dateinamens behoben.) Hier verwenden wir Tapples, um dieses Problem zu lösen.

Vergleich der Taples

Der Vergleich von Taples in Python wird ab dem ersten Element gestartet. Wenn es zwei gibt, z. B. (a, b, c) (d, e, f), vergleichen Sie a und b, b und e und c und f in dieser Reihenfolge.

Wenn Sie den Schlüssel als (x, y), x als einstellige Zahl und y als Dateinamen festlegen, können Sie daher gut sortieren.

Geben Sie diesmal die Länge des Dateinamens in x ein und sortieren Sie.

sort_test_2.py


>>> file_names = ["test_file_{}.txt".format(num) for num in range(1, 21)]
>>> random.shuffle(file_names)
>>> sorted(file_names, key=lambda x: (len(x), x))
['test_file_1.txt', 'test_file_2.txt', 'test_file_3.txt',
 'test_file_4.txt', 'test_file_5.txt', 'test_file_6.txt',
 'test_file_7.txt', 'test_file_8.txt', 'test_file_9.txt',
 'test_file_10.txt', 'test_file_11.txt', 'test_file_12.txt',
 'test_file_13.txt', 'test_file_14.txt', 'test_file_15.txt',
 'test_file_16.txt', 'test_file_17.txt', 'test_file_18.txt',
 'test_file_19.txt', 'test_file_20.txt']

Zusammenfassung

Recommended Posts

[Python] Sortierbar nach mehreren Bedingungen sortieren
Sortieren nach Datum in Python
[Python] Sortieren
Python #sort
Sortieren Sie nach Angabe der Bedingungen in CASTable
Wenn Sie mehrere Schlüssel in Python-Sortierung angeben
[Python] Was wird durch Mehrfachvererbung geerbt?
Blender 2.9, Python, Wählen Sie mehrere Netze nach Koordinaten aus
Nach Pandas sortieren
Sortieren Sie die Elemente eines Arrays, indem Sie Bedingungen angeben
[Python] Sortieren Sie die Tabelle nach sort_values (pandas DataFrame)
[Python] So sortieren Sie Instanzen nach Instanzvariablen
Python> Nach Nummer sortieren und nach Alphabet sortieren> Sortiert verwenden ()
Sortieren Sie die Liste der Tupel in Python, indem Sie die aufsteigende / absteigende Reihenfolge mehrerer Schlüssel angeben
Primzahlbeurteilung durch Python
Visualisierungsnotiz von Python
Kommunikationsverarbeitung durch Python
Blasensortierung in Python
[Python] Erstellen Sie mehrere Verzeichnisse
Python selbst erstellte Klassensortierung
[Memo] Python 3-Listensortierung
Python-Spickzettel
Beamformer-Antwort von Python
Benutzerdefinierte Sortierung in Python3
[Python] Sammlungstypen sortieren
Python> Eine Liste der Dateien in mehreren Verzeichnissen abrufen> Glob verwenden | Nach Änderungszeit sortieren
[Python] Google Mail mit Python senden: Senden Sie eins nach dem anderen mit mehreren angehängten Bilddateien
Mehrfacher Regressionsausdruck in Python
Spracherkennung durch Python MFCC
Sortieren nach dikt Typ Wert Wert
EXE Web API von Python
Newcomer Trainingsprogramm von Python
Parametereinstellung durch Python Configparser
Sortieren Sie den Pfad natürlich in Python
Python Basic Dikt Sortierreihenfolge
Pin Python von Conda verwaltet
Geben Sie mehrere Listenindizes an (Python)
Sortieren Sie große Dateien mit Python
Installieren Sie mehrere Versionen von Python
Absteigende Sorte mit Mongodb in Python
Keyword-Extraktion mit MeCab (Python)
Zahlen durch 3 Ziffern trennen (Python)
Markov-Schaltmodell von Python
Python-Anfänger organisieren Blasensorten
[Rust / Python] Periodische Randbedingung
Python-Grundlagen: Bedingungen und Iterationen
Bildverarbeitung mit Python (Pillow)
Entpacke mehrere komprimierte Dateien (Python)
Python wurde von C-Programmierern gestartet
Vermeiden Sie mehrere Schleifen in Python
Sortieren nach Änderungsdatum der Datei
Plattform (OS) Beurteilung durch Python
Über Python sort () und reverse ()
Sortieren Sie die von Python glob erhaltenen Dateinamen in numerischer Reihenfolge
Wenn Sie eine mehrdimensionale Liste nach mehreren Zeilen sortieren möchten
Die Art des Tupel-Arrays kann durch Angabe des Schlüssels (Python) beschleunigt werden.