Python - Arrays sortieren

Hallo dort, aufstrebende Python-Programmierer! Heute werden wir in die wunderbare Welt der Array-Sortierung in Python eintauchen. Keine Sorge, wenn du neu bei der Programmierung bist – ich werde dich durch jeden Schritt mit vielen Beispielen und Erklärungen führen. Am Ende dieses Tutorials wirst du Arrays wie ein Profi sortieren!

Python - Sort Arrays

Was ist ein Array in Python?

Bevor wir zur Sortierung springen, lassen uns kurz überlegen, was ein Array in Python ist. In Python verwenden wir typischerweise Listen, um Arrays darzustellen. Eine Liste ist eine Sammlung von Elementen, die unterschiedliche Typen haben können. Zum Beispiel:

fruits = ["Apfel", "Banane", "Kirsche", "Dattel"]
numbers = [42, 8, 15, 16, 23]

Arrays mit einem Sortieralgorithmus sortieren

Lassen uns mit einem einfachen Sortieralgorithmus beginnen, dem sogenannten Bubble Sort. Es ist nicht der effizienteste, aber für Anfänger leicht zu verstehen.

Bubble Sort

Hier ist eine einfache Implementierung von Bubble Sort:

def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr

# Beispiel Nutzung
numbers = [64, 34, 25, 12, 22, 11, 90]
sortierte_zahlen = bubble_sort(numbers)
print("Sortiertes Array:", sortierte_zahlen)

Lassen uns das aufbrechen:

  1. Wir definieren eine Funktion namens bubble_sort, die ein Array (Liste) als Eingabe nimmt.
  2. Wir bekommen die Länge des Arrays und speichern sie in n.
  3. Wir verwenden zwei verschachtelte Schleifen, um benachbarte Elemente zu vergleichen.
  4. Wenn ein Element größer ist als das nächste, tauschen wir sie.
  5. Wir wiederholen diesen Prozess, bis das gesamte Array sortiert ist.

Wenn du diesen Code ausführst, siehst du:

Sortiertes Array: [11, 12, 22, 25, 34, 64, 90]

Spaßfact: Bubble Sort heißt so, weil kleinere Elemente mit jeder Iteration an die Spitze der Liste "blubbern"!

Arrays mit der sort() Methode von Listen sortieren

Python-Listen haben eine eingebaute sort() Methode, die das Sortieren viel einfacher macht. Lassen uns sehen, wie sie funktioniert:

# Zahlen sortieren
numbers = [64, 34, 25, 12, 22, 11, 90]
numbers.sort()
print("Sortierte Zahlen:", numbers)

# Strings sortieren
fruits = ["Banane", "Kirsche", "Apfel", "Dattel"]
fruits.sort()
print("Sortierte Früchte:", fruits)

Ausgabe:

Sortierte Zahlen: [11, 12, 22, 25, 34, 64, 90]
Sortierte Früchte: ['Apfel', 'Banane', 'Kirsche', 'Dattel']

Die sort() Methode modifiziert die ursprüngliche Liste. Es ist wie das Aufräumen deines Zimmers – am Ende ist alles in Ordnung, aber es bleibt immer noch dein Zimmer!

In umgekehrter Reihenfolge sortieren

Du kannst auch in absteigender Reihenfolge sortieren, indem du den Parameter reverse=True hinzufügst:

numbers = [64, 34, 25, 12, 22, 11, 90]
numbers.sort(reverse=True)
print("Sortierte Zahlen (absteigend):", numbers)

Ausgabe:

Sortierte Zahlen (absteigend): [90, 64, 34, 25, 22, 12, 11]

Arrays mit der sorted() Funktion sortieren

Die sorted() Funktion ist ein weiteres leistungsstarkes Werkzeug in Python zum Sortieren. Im Gegensatz zu sort() modifiziert sie nicht die ursprüngliche Liste, sondern gibt eine neue sortierte Liste zurück.

# Zahlen sortieren
numbers = [64, 34, 25, 12, 22, 11, 90]
sortierte_zahlen = sorted(numbers)
print("Ursprüngliche Zahlen:", numbers)
print("Sortierte Zahlen:", sortierte_zahlen)

# Strings sortieren
fruits = ["Banane", "Kirsche", "Apfel", "Dattel"]
sortierte_fruits = sorted(fruits)
print("Ursprüngliche Früchte:", fruits)
print("Sortierte Früchte:", sortierte_fruits)

Ausgabe:

Ursprüngliche Zahlen: [64, 34, 25, 12, 22, 11, 90]
Sortierte Zahlen: [11, 12, 22, 25, 34, 64, 90]
Ursprüngliche Früchte: ['Banane', 'Kirsche', 'Apfel', 'Dattel']
Sortierte Früchte: ['Apfel', 'Banane', 'Kirsche', 'Dattel']

Denke daran, dass sorted() eine Kopie deiner Liste macht und diese kopie sortiert, während die ursprüngliche unverändert bleibt. Es ist wie ein Foto von deinem schmutzigen Zimmer zu machen und dann alles im Foto sauber anzuordnen, während dein tatsächliches Zimmer so bleibt, wie es ist!

Sortieren mit benutzerdefinierten Schlüsseln

Eine der coolsten Funktionen von sorted() ist die Fähigkeit, benutzerdefinierte Sortierschlüssel zu verwenden. Angenommen, wir möchten eine Liste von Wörtern nach ihrer Länge sortieren:

words = ["Python", "ist", "großartig", "und", "spaßig"]
sortierte_worte = sorted(words, key=len)
print("Sortiert nach Länge:", sortierte_worte)

Ausgabe:

Sortiert nach Länge: ['ist', 'und', 'spaßig', 'Python', 'großartig']

Hier haben wir len als Schlüsselfunktion verwendet. Python wendet diese Funktion auf jedes Element an und sortiert basierend auf dem Ergebnis.

Vergleich der Sortiermethoden

Lassen uns die Sortiermethoden, die wir gelernt haben, in einer praktischen Tabelle zusammenfassen:

Methode Modifiziert Original Liefert neue Liste Kann benutzerdefinierten Schlüssel verwenden
Bubble Sort Ja Nein Nein
list.sort() Ja Nein Ja
sorted() Nein Ja Ja

Schlussfolgerung

Herzlichen Glückwunsch! Du hast gerade mehrere Möglichkeiten gelernt, Arrays in Python zu sortieren. Von der Implementierung deines eigenen Sortieralgorithmus bis hin zur Verwendung von Python-eingebauten Methoden hast du nun die Werkzeuge, um deine Daten zu organisieren.

Denke daran, dass das Sortieren wie das Anordnen von Büchern auf einer Regal ist – es gibt viele Möglichkeiten, es zu tun, und die beste Methode hängt davon ab, was du erreichen möchtest. Übe mit verschiedenen Arten von Daten und Sortiermethoden, um ein Python-Sortiermeister zu werden!

Happy coding, und möge dein Array immer perfekt sortiert sein! ??

Credits: Image by storyset