Referenzseite: [Einführung in Python] So effizientes Sortieren des Inhalts einer Liste mit Listensortierung
Beim Programmieren gibt es Fälle, in denen Sie den Inhalt einer Liste sortieren möchten. Abhängig von der Sprache gibt es eine Methode zur Realisierung eines vorhandenen Sortieralgorithmus, bei der Anweisungen usw. vollständig verwendet werden, was überraschend schwierig ist. Python verfügt jedoch über eine Funktion zum Sortieren von Listen, sodass Sie diese problemlos sortieren können.
Dieses Mal werde ich erklären, wie der Inhalt der Liste sortiert wird.
Inhaltsverzeichnis 1 [Sortieren mit Sortierfunktion](## Sortieren mit Sortierfunktion) 2 [Umkehrsortierung mit Umkehrfunktion](## Umkehrsortierung mit Umkehrfunktion) 3 [Sortieren mit sortierter Funktion](## Sortieren mit sortierter Funktion) 3.1 [Aufsteigende Sortierung mit sortierter Funktion](Aufsteigende Sortierung mit sortierter Funktion ###) 3.2 [In absteigender Reihenfolge mit sortierter Funktion sortieren](In absteigender Reihenfolge mit sortierter Funktion ### sortieren) 4 [Mehrdimensionale Liste sortieren](## Mehrdimensionale Liste sortieren)
Der einfachste Weg, in Python aufzulisten, ist die Verwendung der Sortierfunktion. Die Syntax der Sortierfunktion lautet wie folgt.
aufführen.sort()
Verwenden Sie sort (), um den Inhalt der Liste in aufsteigender Reihenfolge zu sortieren. Zeichenfolgen werden in Zeichencode-Reihenfolge sortiert, und numerische Werte werden in aufsteigender Reihenfolge sortiert. Wenn Sie mit sort () sortieren, wird der Inhalt der ursprünglichen Liste ausgetauscht.
list1 = ['python', 'list', 'sort']
print('Vor dem Sortieren:{}'.format(list1))
list1.sort()
print('Nach dem Sortieren:{}'.format(list1))
Ausführungsergebnis
Vor dem Sortieren: ["Python", "Liste", "Sortieren"] Nach dem Sortieren: ['Liste', 'Python', 'Sortieren']
Sie können die Liste einfach mit der Sortierfunktion sortieren, aber die Reihenfolge ist immer aufsteigend. Wenn Sie in absteigender Reihenfolge sortieren möchten, verwenden Sie die Umkehrfunktion. Die Syntax der Umkehrfunktion lautet wie folgt.
aufführen.reverse()
Wenn Sie reverse () verwenden, wird alles in der Liste umgekehrt. Daher können Sie die Liste in absteigender Reihenfolge mit reverse () sortieren, nachdem Sie mit sort () in aufsteigender Reihenfolge sortiert haben.
list1 = [1,5,3,9,6,7,8]
print('Vor dem Sortieren:{}'.format(list1))
list1.sort()
print('Nach dem Sortieren(aufsteigende Reihenfolge):{}'.format(list1))
list1.reverse()
print('Nach dem Sortieren(absteigende Reihenfolge):{}'.format(list1))
Ausführungsergebnis
Vor dem Sortieren: [1, 5, 3, 9, 6, 7, 8] Nach dem Sortieren (aufsteigende Reihenfolge): [1, 3, 5, 6, 7, 8, 9] Nach dem Sortieren (absteigende Reihenfolge): [9, 8, 7, 6, 5, 3, 1]
Wir haben festgestellt, dass die Sortierfunktion verwendet werden kann, um die Liste in aufsteigender Reihenfolge zu sortieren, und die umgekehrte Funktion kann verwendet werden, um in absteigender Reihenfolge zu sortieren. Bei der Sortierung mit diesen beiden Funktionen wird der Inhalt der ursprünglichen Liste jedoch neu geschrieben.
Wenn Sie sortiert haben, es aber wiederherstellen möchten, möchten Sie möglicherweise eine neue sortierte Liste erstellen, ohne den Inhalt nach Möglichkeit zu ändern. In einem solchen Fall ist die sortierte Funktion praktisch.
Die sortierte Funktion ist eine Funktion, die eine Liste auf die gleiche Weise wie die Sortierfunktion sortiert. Die sortierte Funktion gibt jedoch eine sortierte Liste zurück, sodass der Inhalt der ursprünglichen Sortierung im Gegensatz zur Sortierfunktion gleich bleibt. Die Syntax zum Sortieren in aufsteigender Reihenfolge mit der sortierten Funktion lautet wie folgt.
Listing 2:= sorted(Listing 1:)
Wenn Sie Liste 1 vor dem Sortieren an sortiert übergeben, wird die sortierte Liste zurückgegeben. Durch Einsetzen in Listing 2 wird ein neues Listing 2 erstellt, das Listing 1 sortiert. Die ursprüngliche Liste ändert sich nicht, daher ist es hilfreich, die ursprüngliche Liste beizubehalten, falls etwas schief geht.
list1 = [1,5,3,9,6,7,8]
list2 = sorted(list1)
print('Vor dem Sortieren:{}'.format(list1))
print('Nach dem Sortieren:{}'.format(list2))
Ausführungsergebnis
Vor dem Sortieren: [1, 5, 3, 9, 6, 7, 8] Nach dem Sortieren: [1, 3, 5, 6, 7, 8, 9]
Das Sortieren mit der sortierten Funktion führt zu aufsteigender Reihenfolge, aber Sie können natürlich auch in absteigender Reihenfolge sortieren.
Listing 2:= sorted(Listing 1:)
Wenn Sie die sortierte Funktion verwenden, können Sie in absteigender Reihenfolge sortieren, indem Sie die Option "Umgekehrt" auf "Wahr" setzen.
list1 = [1,5,3,9,6,7,8]
list2 = sorted(list1, reverse=True) #umgekehrt zu True
print('Vor dem Sortieren:{}'.format(list1))
print('Nach dem Sortieren:{}'.format(list2))
Ausführungsergebnis
Vor dem Sortieren: [1, 5, 3, 9, 6, 7, 8] Nach dem Sortieren: [9, 8, 7, 6, 5, 3, 1] Mehrdimensionale Listensortierung
Bisher haben wir erklärt, wie eine eindimensionale Liste sortiert wird. Manchmal möchten Sie jedoch eine zweidimensionale oder größere mehrdimensionale Liste sortieren. Mehrdimensionale Arrays können mit sort (), reverse (), sorted () wie in 1-dimensional sortiert werden.
Bei mehrdimensionalen Daten hängt das Ergebnis jedoch davon ab, welcher Wert zum Sortieren verwendet wird. Angenommen, Sie möchten eine Liste wie folgt sortieren:
list1 = [[1,5,3], [6,4,8], [9,11,2]]
Diese Liste1 ist ein zweidimensionales Array aus drei Listen mit drei Elementen. Das Ergebnis der Sortierung dieser Liste1 ändert sich je nachdem, welches Element jeder Elementliste als Schlüssel verwendet wird.
[[1, 5, 3], [6 ,4 ,8], [9, 11, 2]] #Geben Sie das erste Element jeder Liste ein
[[6, 4, 8], [1, 5, 3], [9, 11, 2]] #Geben Sie das zweite Element jeder Liste ein
[[9, 11, 2], [1, 5, 3], [6, 4, 8]] #Geben Sie das dritte Element jeder Liste ein
Wenn Sie eine mehrdimensionale Liste normal sortieren, wird sie mit dem ersten Element als Schlüssel sortiert. Verwenden Sie itemgetter, um nach Schlüsselelementen zu sortieren.
from operator import itemgetter
Listing 1:.sort(key=itemgetter(1)) #Listing 1:は2次元以の配列
Da itemgetter eine Funktion der Operatorbibliothek ist, muss es zuerst importiert werden. Das Argument von itemgetter () repräsentiert die Nummer des Elements, das Sie eingeben möchten. Bei itemgetter (1) wird die Liste mit dem ersten Element als Schlüssel sortiert.
Mit itemgetter können Sie auswählen, welches Element als Schlüssel verwendet werden soll.
from operator import itemgetter
list1 = [[1,5,3], [6,4,8], [9,11,2]]
print('Vor dem Sortieren:{}'.format(list1))
list1.sort(key=itemgetter(0))
print('Nach dem Sortieren(0. Element):{}'.format(list1))
list1.sort(key=itemgetter(1))
print('Nach dem Sortieren(Erstes Element):{}'.format(list1))
list1.sort(key=itemgetter(2))
print('Nach dem Sortieren(Zweites Element):{}'.format(list1))
Ausführungsergebnis
Vor dem Sortieren: [[1, 5, 3], [6, 4, 8], [9, 11, 2]] Nach dem Sortieren (0. Element): [[1, 5, 3], [6, 4, 8], [9, 11, 2]] Nach dem Sortieren (erstes Element): [[6, 4, 8], [1, 5, 3], [9, 11, 2]] Nach dem Sortieren (zweites Element): [[9, 11, 2], [1, 5, 3], [6, 4, 8]]
Recommended Posts