Datenstrukturen
Wir haben bisher einfache Variablen kennen gelernt, die nur einen Wert aufnehmen können. Es gibt in Python aber eine ganze Reihe von Variablen die mehrere Werte enthalten können. Dafür gibt es den Begriff Datenstruktur.
Funktionen die auf die folgenden Datenstrukturen angewendet werden können
len(x)
- gibt die Länge der Liste x zurück.
max(x)
- gibt den größten Wert aus der Liste x zurück.
min(x)
- gibt den kleinsten Wert aus der Liste x zurück.
del(x)
- löschen eines Elementes
- löschen der ganzen Datenstruktur
Listen
Erzeugen
- liste = [1, 2, 3]
- Die Werte von Listen werden in eckige Klammern geschrieben.
- Werte dürfen mehrfach vorkommen.
- Es können unterschiedliche Datentypen in einer Liste enthalten sein.
- Listen dürfen Listen enthalten
Übung
- Erzeugt 10 Listen mit einheitlichen und gemischten Datentypen.
Lesen
- Die Werte in einer Liste sind indiziert.
- Der Index beginnt mit 0 !!!
- Über den Index kann auf den Wert zugegriffen werden
Übung
- Greift über den Index auf einzelne Elemente Eurer Listen zu.
Verändern
- Über den Index können einzelne Werte verändert werden.
- liste[1] = 5 => [1, 5, 3]
Übung
- Verändert einzelne Werte in euren Listen und überprüft die Änderung
- Ändert den Datentyp einzelner Elemente
Erweitern
.insert(i, x)
- fügt an Index i den Wert x ein.
.append(x)
- fügt ein neues Element zur Liste hinzu
- liste.append([10, 20]) => [1, 2, 3, [10, 20]]
.extend(x)
- fügt ggf. mehrere Elemente hinzu.
- liste.extend([10, 20]) => [1, 2, 3, 10, 20]
Übung
- Erweitert eure Listen mit allen Methoden und überprüft die Änderungen
Verkleinern
.pop([i])
- Entfernt das Element mit Index i aus der Liste und gibt es zurück.
- ohne i wird das letzte Element ausgewählt.
.remove(x)
- Entfernt das erste Element mit dem Wert x.
Übung
- Holt mit pop ein Element aus einer Liste und zeigt es mit print() an.
- Entfernt alle Elemente mit dem selben Wert aus einer Liste.
Sortieren
.reverse()
- kehrt den Inhalt der Liste um.
.sort(k, r)
- sortiert eine Liste
- Ohne Parameter wird alphabetisch sortiert.
- k(ey) gibt den Sortierschlüssel an. Z.B. Länge bei Strings.
- r(everse) gibt eine umgekehrte Sortierung zurück.
- Es können nur gleiche Datentypen sortiert werden.
Übung
- Sortierte ein paar Deiner Listen.
- Prüfe ob wirklich nur gleiche Datentypen sortiert werden können.
Suchen
.index(x)
- index gibt den Index des ersten auftretens von x in der Liste zurück.
.count(x)
- gibt zurück wie oft x in der Liste vorkommt.
Übung
- suche nach Einträgen in deinen Listen.
Löschen
.clear()
- alle Elemente einer Liste entfernen.
Übung
- leere eine Deiner Liste mit .clear() und kontrolliere den Inhalt.
Dictionaries / Wörterbücher
Erzeugen
dictionary = {key1: value1, key2: value2}
- Dictionaries enthalten eine Liste von key:value Paaren.
- key = Schlüssel
- value = Wert
- item = Schlüssel:Wert-Paar
- Die items sind nicht sortiert und können ihre Reihenfolge verändern.
- Keys dürfen nur einmal vorkommen.
- Keys dienen als Index.
- Values dürfen Dictionaries und andere Datenstrukturen enthalten.
Übung
- Erstelle ein Wörterbuch, das die Zahlen 0 bis 9 als Schlüssel und die Wörter als Wert enthält.
- Erstelle ein Wörterbuch das die deutschen Worte für die Zahlen 0 bis 9 als key und die englischen Worte als value enthält.
- Erstelle ein Dictionary das 'Aussen', 'Wohnzimmer' und 'Schlafzimmer' als key enthält und die values dazu enbenfalls ein Dictionary mit den keys 'Temperatur', 'Luftdruck' und 'Luftfeuchte' ist. Die values dazu könnt Ihr selbst bestimmen.
Lesen
- x = dictionary[key] - gibt den Wert des Schlüssels zurück
- x = d.items() - erstellt eine Liste mit den key:value-Paaren
- x = d.keys() - erstellt eine Liste mit den keys
- x = d.values() - erstellt eine Liste mit den values
Übung
Verändern
- value eines items ändern
- key eines items ändern
- d[neuer_key] = d[alter_key]
del[alter_key]
- d[neuer_key] = d.pop(alter_key)
Übung
Erweitern
Übung
Verkleinern
- d.pop(key) - gibt das item mit dem key zurück und entfernt es.
Übung
Sortieren
- Dictionaries sind grundsätzlich unsortiert!
Suchen
Löschen
- del d[k] löscht das ganze item
- d.clear() löscht alle items.
Übung
Strings
- Strings kann man als Sonderform von Listen betrachten, die nur Zeichen enthalten.
- Deshalb kann man sie auch so behandeln wie Listen.
- Strings sind aber immutable also unveränderlich
- wenn ein String verändert wird muss jedesmal ein neuer String angeleg werden.
Übung
- Testet aus welche Methoden von Listen bei Strings funktionieren.
Zusammenführen
- str1 + str2
- ' '.join((str1, str2))
Übung
- Erstelle mehrere Strings und probiere beide Methoden zum Zusammenführen.
Vervielfachen
Übung
- Spiele ein wenig mit der Multiplikation von Strings.
Ausrichten
- s.center(width,fillchar)
- .ljust() und .rjust() gibt es Micropython nicht.
Übung
- gibt deine Strings in verschiedenen Spaltenbreiten und verschiedenen Füllzeichen zentriert aus.
Weitere Datenstrukturen
Diese werden nur zur Kenntniss gegeben. Sie werden hier nicht behandelt.
Tuple
immutable Liste
Set
Für Mengen
Bytearray / Bytestring
In den 2. Teil verschieben.
Werden nur zur Vorbereitung auf eine serielle Datenübertragung verwendet.
Datenstrukturen werden in einzelne Bytes zerlegt.
python-bytes-to-string-how-to-convert-a-bytestring
python-bytes
Array
Nur über Modul array.