sorted , list.sort()
Diese beiden Funktionen sind in Python integriert und sortieren die Liste. Wenn es sich um ein eindimensionales Array handelt, müssen Sie nicht zu viel darüber nachdenken, aber es ist ärgerlich, wenn es um mehrere Bestellungen geht. Hier ist die Erklärung als Methode, wenn es sich um mehrere Ordnungen handelt
sorted
a = [
[1,7,'z'],
[3,2,'x'],
[1,8,'r'],
[2,2,'s'],
[1,9,'b'],
[2,2,'a']
]
print sorted(a, key=lambda x:x[2])
Wenn Sie diesen key = lambda x: x [2]
schreiben, wird die Liste nach index = 2 sortiert, hier nach Zeichen.
Ich war mir jedoch nicht sicher, ob das Übergeben dieser Lambda-Funktion funktionieren würde.
Anscheinend steckte ich immer noch in einer Sprache fest, die altmodische Funktionen nicht umbenennen konnte.
example
def f1(data,function):
p = []
for i in data:
p.append(function(i))
return p
def f2(num):
return num/2.
a = f1 #Variable a bedeutet Funktion f1
b = f2 #Variable b bedeutet die Funktion f2
print f1(3,f2) #Mit diesem Ergebnis
print a(3,b) #Dieses Ergebnis ist das gleiche
In sortiert wurde der Schlüssel nicht angegeben, um das zweite Element zu vergleichen. Dies bedeutet, dass eine Funktion angegeben wurde, die die zu vergleichenden Elemente zurückgibt.
sorted
sort(a,key=str.lower)
sort(a,key=lambda x:x[2])
# for i in a:
# key(i) =>Vergleichsfaktor
Dies bedeutet, dass Sie sogar Ihre eigenen ausgefeilten Funktionen einsetzen können.
function_x
def function_x(something):
'''
Etwas, das sehr aufwändige und unerwartete Ergebnisse liefert
'''
return result
a = [
[1,7,'z'],
[3,2,'x'],
[1,8,'r'],
[2,2,'s'],
[1,9,'b'],
[2,2,'a']
]
print sorted(a,key=function_x)
Wenn Sie beispielsweise eine Funktion erstellen, die die Weltrangliste des Fußballs zurückgibt, wenn Sie einen Ländernamen werfen und sortieren, Sie können nach Ländernamen in der Reihenfolge der Fußball-Rangliste sortieren. (Keine Nachfrage) Dies kann nützlich und unerwartet nützlich sein.
Recommended Posts