3 Stimmen

Warum kann ich diese Liste nicht sortieren?

statlist = [('abc',5,1), ('bzs',66,1), ... ]
sorted(statlist, key=lambda x: int(x[1]))

Ich möchte sie nach der größten bis kleinsten Ganzzahl sortieren. In diesem Fall: 5 und 66. Aber es scheint nicht zu funktionieren.

7voto

Andrew Hare Punkte 332190

En sorted Funktion gibt eine neu Liste, so dass Sie die Ergebnisse der Funktion wie folgt zuordnen müssen:

new_list = sorted(statlist, key=lambda x: int(x[1]))

7voto

e-satis Punkte 547539

Verwenden Sie die .sort Methode für das Sortieren an Ort und Stelle:

statlist = [('abc',5,1), ('bzs',66,1), ... ]
statlist.sort(key=lambda x: int(x[1]))

Wenn Sie Folgendes verwenden möchten sorted und ordnen Sie dann die Variable neu zu:

statlist = [('abc',5,1), ('bzs',66,1), ... ]
statlist = sorted(statlist, key=lambda x: int(x[1]))

Für absteigende Sortierung, verwenden Sie reverse :

statlist = [('abc',5,1), ('bzs',66,1), ... ]
statlist = sorted(statlist, key=lambda x: int(x[1]), reverse=True)

Dann verwenden Sie besser itemgetter anstelle einer lambda :

import operator
statlist = [('abc',5,1), ('bzs',66,1), ... ]
statlist = sorted(statlist, key=operator.itemgetter(1), reverse=True)

3voto

YOU Punkte 113320

Sie können an die Funktion .sort übergeben, schlüsseln und umkehren

>>> x.sort(key=lambda x:x[1],reverse=True)
>>> x
[('bzs', 66, 1), ('abc', 5, 1)]
>>>

3voto

ogg Punkte 31

Für die Inplace-Sortierung verwenden

statlist.sort(key=lambda x: x[1])

für die Erstellung anderer Listen mit sortierten Daten verwenden Sie

otherlist = sorted( statlist, key=lambda x: x[1] )

2voto

Jochen Ritzel Punkte 99416
from operator import itemgetter
statlist = [('abc',5,1), ('bzs',66,1), ... ]

# statlist.sort modifiest the statlist, sorted returns a new one
# reverse puts the largest items to the front
statlist.sort(key=itemgetter(1), reverse=True)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X