Ausführliche Erklärung zur Verwendung von sort() in Python

高洛峰
Freigeben: 2017-05-25 11:14:31
Original
3274 Leute haben es durchsucht

1. Grundform

sorted(iterable[, cmp[, key[, reverse]]])
iterable.sort(cmp[, key[, reverse]])
Nach dem Login kopieren


Parametererklärung:
(1) iterable gibt selbstverständlich die zu sortierende Liste oder iterable an; > (2) cmp ist eine Funktion, die die Funktion für den Vergleich beim Sortieren angibt, z. B.:
Students ist eine Liste von Klassenobjekten, die Sie definieren können Wenn Sie beispielsweise die Funktion „sortiert“ zum Vergleich verwenden, möchten Sie die Sortierung durch den Vergleich des dritten Datenelements durchführen. Der Code kann wie folgt geschrieben werden:

students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
sorted(students, key=lambda student : student[2])
Nach dem Login kopieren

(3) Schlüssel ist eine Funktion, die angibt, welches Element der zu sortierenden Elemente verwendet wird. Die Funktion wird anhand des obigen Beispiels erläutert. Der Code lautet wie folgt:

sorted(students, key=lambda student : student[2])
Nach dem Login kopieren

Die Funktion des Lambda Die durch den Schlüssel angegebene Funktion besteht darin, das dritte Feld des Elements student (dh: student[2]) zu entfernen. Wenn also sortiert wird, wird das dritte Feld aller Elemente von Students zum Sortieren verwendet.

2. Allgemeine Verwendung:
1. In-Place-Sortierung 1) Die Liste verfügt über eine eigene Sortiermethode, die die Liste in-Place sortiert. Da es sich um eine In-Place-Sortierung handelt, können Tupel diese Methode offensichtlich nicht verwenden, da Tupel nicht geändert werden können.

x = [4, 6, 2, 1, 7, 9]
x.sort()
print x # [1, 2, 4, 6, 7, 9]
Nach dem Login kopieren


2. Kopiersortierung1)[:] Sharding-Methode

x =[4, 6, 2, 1, 7, 9]
y = x[ : ]
y.sort()
print y #[1, 2, 4, 6, 7, 9]
print x #[4, 6, 2, 1, 7, 9]
Nach dem Login kopieren

Hinweis: y = x [ :] Kopieren Sie alle Elemente der Liste x durch den Sharding-Vorgang nach y. Wenn Sie x einfach y zuweisen: y = x, y und x verweisen immer noch auf dieselbe Liste und es werden keine neuen Kopien generiert.
2) sortierte Methode
sorted gibt eine geordnete Kopie zurück, und der Typ ist immer eine Liste, wie folgt:

x =[4, 6, 2, 1, 7, 9]
y = sorted(x)
print y #[1, 2, 4, 6, 7, 9]
print x #[4, 6, 2, 1, 7, 9] 
print sorted('Python') #['P', 'h', 'n', 'o', 't', 'y']
Nach dem Login kopieren


3. Erweiterte Verwendung
1. Benutzerdefinierte cmp-Vergleichsfunktion

def comp(x, y):
if x < y:
return 1
elif x > y:
return -1
else:
return 0
nums = [3, 2, 8 ,0 , 1]
nums.sort(comp)
print nums # 降序排序[8, 3, 2, 1, 0]
nums.sort(cmp) # 调用内建函数cmp ,升序排序
print nums # 降序排序[0, 1, 2, 3, 8]
Nach dem Login kopieren


2. Benutzerdefinierte Taste und Umkehrung1.Umkehrung zur Implementierung der absteigenden Sortierung, erforderlich Stellt einen booleschen Wert bereit, der Standardwert ist False (aufsteigende Reihenfolge).
2.key muss eine Funktion bereitstellen, die bei Verwendung vom Sortierprozess aufgerufen wird:

alist = [('2', '3', '10'), ('1', '2', '3'), ('5', '6', '7'), ('2', '5', '10'), ('2', '4', '10')]
# 多级排序,先按照第3个元素排序,然后按照第2个元素排序:
print sorted(alist, cmp = None, key = lambda x:(int(x[2]), int(x[1])), reverse = False)
-------------------------------------------------------------------------------------------
[('1', '2', '3'), ('5', '6', '7'), ('2', '3', '10'), ('2', '4', '10'), ('2', '5', '10')]
Nach dem Login kopieren


4. Operator.itemgetter-Funktion vom Operatormodul bereitgestellt Die Itemgetter-Funktion wird verwendet, um die Daten der Objektabmessungen abzurufen. Die Parameter sind einige Seriennummern (dh die Seriennummern der im Objekt abzurufenden Daten).

a = [1,2,3]
>>> b=operator.itemgetter(1)   //定义函数b,获取对象的第1个域的值
>>> b(a)
2
>>> b=operator.itemgetter(1,0) //定义函数b,获取对象的第1个域和第0个的值
>>> b(a)
(2, 1)
Nach dem Login kopieren

Es ist zu beachten, dass die Funktion „operator.itemgetter“ den Wert nicht erhält, sondern eine Funktion definiert, über die die Funktion auf das Objekt angewendet werden kann, um den Wert zu erhalten.

Verwendung von itemgetter in sort:

from operator import itemgetter
alist = [('2', '3', '10'), ('1', '2', '3'), ('5', '6', '7'), ('2', '5', '10'), ('2', '4', '10')]
# 多级排序,先按照第3个元素排序,然后按照第2个元素排序:
print sorted(alist, cmp = None, key = itemgetter(2, 1), reverse = False)
print sorted(alist, cmp = None, key = lambda x:itemgetter(2, 1)(x), reverse = False)
print sorted(alist, cmp = None, key = lambda x:map(int, itemgetter(2, 1)(x)), reverse = False)
--------------------------------------------------------------------------------------------------
[('2', '3', '10'), ('2', '4', '10'), ('2', '5', '10'), ('1', '2', '3'), ('5', '6', '7')]
[('2', '3', '10'), ('2', '4', '10'), ('2', '5', '10'), ('1', '2', '3'), ('5', '6', '7')]
[('1', '2', '3'), ('5', '6', '7'), ('2', '3', '10'), ('2', '4', '10'), ('2', '5', '10')]
Nach dem Login kopieren

Das Obige ist die grundlegende Verwendung der vom Editor eingeführten Methode sort() in Python. Ich hoffe, dass dies der Fall ist Für Sie hilfreich. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten!

[Verwandte Empfehlungen]

1.

Teilen Sie Beispiele für die Verwendung der Sortierung in Python

2.

Detailliertes Tutorial zur Verwendung von value() in Python

3.

Beispiel für die Verwendung von sort_values ​​​​isin in Pandas DataFrame

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung zur Verwendung von sort() in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!