Heim > Artikel > Backend-Entwicklung > Ausführliche Erläuterung zweier Beispielmethoden zur Sortierung von Python-Listen
Um List zu sortieren, bietet Python zwei Methoden
list.sort(func=None, key=None, reverse=False)
Python-Beispiel:
>>> list = [2,5,8,9,3] >>> list [2,5,8,9,3] >>> list.sort() >>> list [2, 3, 5, 8, 9]
Python-Beispiel:
>>> list = [2,5,8,9,3] >>> list [2,5,8,9,3] >>> sorted(list) [2, 3, 5, 8, 9]
sorted(list) gibt ein Objekt zurück, das als Ausdruck verwendet werden kann. Die ursprüngliche Liste bleibt unverändert und es wird ein neues sortiertes Listenobjekt generiert.
list.sort() gibt keine Objekte zurück und ändert die ursprüngliche Liste.
>>>L = [2,3,1,4] >>>L.sort() >>>L >>>[1,2,3,4]
>>>L = [2,3,1,4] >>>L.sort(reverse=True) >>>L >>>[4,3,2,1]
>>>L = [('b',6),('a',1),('c',3),('d',4)] >>>L.sort(lambda x,y:cmp(x[1],y[1])) >>>L >>>[('a', 1), ('c', 3), ('d', 4), ('b', 6)]
>>>L = [('b',6),('a',1),('c',3),('d',4)] >>>L.sort(key=lambda x:x[1]) >>>L >>>[('a', 1), ('c', 3), ('d', 4), ('b', 6)]
>>>L = [('b',2),('a',1),('c',3),('d',4)] >>>import operator >>>L.sort(key=operator.itemgetter(1)) >>>L >>>[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
>>>L = [('b',2),('a',1),('c',3),('d',4)] >>>A = [(x[1],i,x) for i,x in enumerate(L)] #i can confirm the stable sort >>>A.sort() >>>L = [s[2] for s in A] >>>L >>>[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
Das Obige gibt 6 Methoden zum Sortieren von Listen an, von denen Beispiel 3.4.5.6 eine Rolle beim Sortieren von Listen nach einem bestimmten Element im Listenelement spielen kann
als Vergleichsschlüssel
cmp < DSU < Der experimentelle Vergleich zeigt, dass Methode 3 langsamer ist als Methode 6, Methode 6 ist langsamer als Methode 4, Methode 4 und Methode 5 sind grundsätzlich gleichwertig
Mehrere Schlüsselwortvergleichssortierung:
Beispiel 7:
Das sehen wir Das sortierte L wird zu diesem Zeitpunkt nur nach dem zweiten Schlüsselwort sortiert. Wenn wir nach dem zweiten Schlüsselwort sortieren möchten, gibt es zwei Methoden: Beispiel 8:>>>L = [('d',2),('a',4),('b',3),('c',2)] >>> L.sort(key=lambda x:x[1]) >>> L >>>[('d', 2), ('c', 2), ('b', 3), ('a', 4)]Beispiel 9:
>>> L = [('d',2),('a',4),('b',3),('c',2)] >>> L.sort(key=lambda x:(x[1],x[0])) >>> L >>>[('c', 2), ('d', 2), ('b', 3), ('a', 4)]gleich ist, vergleichen Sie das zweite
>>> L = [('d',2),('a',4),('b',3),('c',2)] >>> L.sort(key=operator.itemgetter(1,0)) >>> L >>>[('c', 2), ('d', 2), ('b', 3), ('a', 4)]
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung zweier Beispielmethoden zur Sortierung von Python-Listen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!