Sortieren einer Liste in Python: der Unterschied zwischen sortiert und sortiert

Geschäft

Es gibt zwei Möglichkeiten, eine Liste in Python in aufsteigender oder absteigender Reihenfolge zu sortieren.

  • sort()
  • sorted()

Wenn Sie eine Zeichenkette oder ein Tupel sortieren wollen, verwenden Sie sorted().

Hier finden Sie die folgenden Informationen.

  • Eine Methode vom Typ list, die die ursprüngliche Liste sortiertsort()
  • Erzeugen einer neuen sortierten Liste, eingebaute Funktion: .sorted()
  • Sortieren von Zeichenketten und Tupeln

Sortieren der ursprünglichen Liste, eine Methode vom Typ list: sort()

sort() ist eine Methode vom Typ Liste.

Ein destruktiver Prozess, bei dem die ursprüngliche Liste selbst neu geschrieben wird.

org_list = [3, 1, 4, 5, 2]

org_list.sort()
print(org_list)
# [1, 2, 3, 4, 5]

Beachten Sie, dass sort() keinen Wert zurückgibt.

print(org_list.sort())
# None

Die Standardeinstellung ist aufsteigende Reihenfolge. Wenn Sie in absteigender Reihenfolge sortieren möchten, setzen Sie das Argument reverse auf true.

org_list.sort(reverse=True)
print(org_list)
# [5, 4, 3, 2, 1]

Erzeugen einer neuen sortierten Liste, eingebaute Funktion: sorted()

sorted() ist eine eingebaute Funktion.

Gibt eine sortierte Liste zurück, wenn die zu sortierende Liste als Argument angegeben wird. Dies ist ein nicht-destruktiver Prozess, der die ursprüngliche Liste nicht verändert.

org_list = [3, 1, 4, 5, 2]

new_list = sorted(org_list)
print(org_list)
print(new_list)
# [3, 1, 4, 5, 2]
# [1, 2, 3, 4, 5]

Wie bei sort() ist die Standardeinstellung aufsteigende Reihenfolge. Wenn Sie in absteigender Reihenfolge sortieren wollen, setzen Sie das Argument reverse auf true.

new_list_reverse = sorted(org_list, reverse=True)
print(org_list)
print(new_list_reverse)
# [3, 1, 4, 5, 2]
# [5, 4, 3, 2, 1]

Sortieren von Zeichenketten und Tupeln

Da Strings und Tupel unveränderlich sind, gibt es keine sort()-Methode, um das ursprüngliche Objekt neu zu schreiben.

Andererseits kann das Argument der Funktion sorted(), die eine sortierte Liste als neues Objekt erzeugt, sowohl eine Zeichenkette oder ein Tupel als auch eine Liste sein. Da sort() jedoch eine Liste zurückgibt, muss sie in eine Zeichenkette oder ein Tupel umgewandelt werden.

Strings sortieren

Wenn eine Zeichenkette als Argument der Funktion sortiert() angegeben wird, wird eine Liste zurückgegeben, in der jedes Zeichen der sortierten Zeichenkette als Element gespeichert ist.

org_str = 'cebad'

new_str_list = sorted(org_str)
print(org_str)
print(new_str_list)
# cebad
# ['a', 'b', 'c', 'd', 'e']

Um eine Liste von Zeichenketten zu einer einzigen Zeichenkette zu verketten, verwenden Sie die Methode join().

new_str = ''.join(new_str_list)
print(new_str)
# abcde

Wenn Sie in absteigender Reihenfolge sortieren wollen, setzen Sie das Argument reverse auf true.

new_str = ''.join(sorted(org_str))
print(new_str)
# abcde

new_str_reverse = ''.join(sorted(org_str, reverse=True))
print(new_str_reverse)
# edcba

Die Größe einer Zeichenfolge wird durch den Unicode-Codepunkt (Zeichencode) des Zeichens bestimmt.

Tupel sortieren

Tupel sind dasselbe wie Zeichenketten; die Angabe eines Tupels als Argument der Funktion sorted() gibt eine sortierte Liste von Elementen zurück.

org_tuple = (3, 1, 4, 5, 2)

new_tuple_list = sorted(org_tuple)
print(org_tuple)
print(new_tuple_list)
# (3, 1, 4, 5, 2)
# [1, 2, 3, 4, 5]

Um eine Liste in ein Tupel umzuwandeln, verwenden Sie tuple().

new_tuple = tuple(new_tuple_list)
print(new_tuple)
# (1, 2, 3, 4, 5)

Wenn Sie in absteigender Reihenfolge sortieren wollen, setzen Sie das Argument reverse auf true.

new_tuple = tuple(sorted(new_tuple_list))
print(new_tuple)
# (1, 2, 3, 4, 5)

new_tuple_reverse = tuple(sorted(new_tuple_list, reverse=True))
print(new_tuple_reverse)
# (5, 4, 3, 2, 1)
Copied title and URL