Container

Container sind Datentypen in Python, die mehrere Variablen aufnehmen und den Zugriff darauf organisieren.

1Python Programmierkurs
2Python: Methoden
3Kontrollstrukturen
4Strings in Python
5Container
6Objekte in Python
7Module
8Exceptions in Python
9Typkonvertierung
10Python und Dateien
11Datum und Zeit mit Python verarbeiten
12Multithreading
13Netzwerk in Python
14Logging in Python
15GPIO
16Automatische Tests
17Datenbanken mit Python
18Python: Generatoren und List Comprehension
19Python: Webseiten mit Flask
20Python virtuelle Umgebungen
21Interrupts & Signale
22NumPy
23Matplotlib
24match
25Reguläre Ausdrücke
26lambda Funktionen
27logging.config
28Decorators

Listen

Listen hast du schon im letzten Teil kurz gesehen. Listen fassen mehrere Variablen des gleichen Typs zusammen (das ist aber mehr eine Konvention). In anderen Programmiersprachen werden Listen als Array verstanden. Daher leitet sich auch die Deklaration mit eckigen Klammern ab. Genauso geschieht der Zugriff auf die einzelnen Elemente.

namen = ["Homer", "Marge", "Bart"]

print(namen[0])
print(namen[1])
print(namen[2])
usgabe der Namenliste Container
Olli Graf - raspithek.de
simplelistCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Ausgabe der Namensliste

Die Elemente in der Liste werden mit 0 beginnend gezählt. Wie bei Strings liefert dir die len() Funktion die Anzahl der Elemente.

Natürlich kannst du auch über eine Liste iterieren.

namen = ["Homer", "Marge", "Bart"]

for ind in range(0,len(namen)):
  print(f'{ind}: {namen[ind]}')

Jetzt wird dir vielleicht auch klarer, warum for immer nur bis zum Endwert-1 läuft, einfach deshalb, weil wir bei 0 zu zählen beginnen.

Liste erweitern

Im Gegensatz zu Arrays kannst du eine Liste um weitere Elemente erweitern

namen = ["Homer", "Marge", "Bart"]


namen.append('Lisa')
namen.append('Maggie')

print(namen)

Du kannst auch eine Liste um eine andere erweitern.

zahlen1 = ['0','1','2','3','4','5']
zahlen2 = ['6','7','8','9']

zahlen1.extend(zahlen2)

print(zahlen1)

Beachte dabei wird zahlen1 um zahlen2 erweitert und keine neue Liste gebildet.

Liste sortieren

Beim Zusammenfügen kann es passieren, das die Werte nicht in der korrekten Reihenfolge sind, also kann sort() dies für dich übernehmen.

zahlen1 = ['0','1','4','3','2','5']
zahlen2 = ['8','7','9','6']

zahlen1.extend(zahlen2)

print(f'unsortiert:{zahlen1}')
zahlen1.sort()
print(f'sortiert:{zahlen1}')

Auch sort() arbeitet innerhalb der Liste und erzeugt keine neue.

Ausgabe der sort() Methode
Olli Graf - raspithek.de
sortCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Ausgabe der sort() Methode

Element entfernen

Um ein Element aus der Liste zu entfernen benutzt du del

zahlen1 = ['0','1','4','3','2','5']
zahlen2 = ['8','7','9','6']

zahlen1.extend(zahlen2)

print(f'komplett:{zahlen1}')
zahlen1.sort()
del zahlen1[3]
print(f'nach del:{zahlen1}')

Nach der Sortierung wird das dritte Element aus der Liste gelöscht.Mit der pop() Funktion kannst das letzte Element der Liste entfernen.

Tupel

Tupel kennst du vielleicht aus der Mathematik. Sie fassen mehrere Werte zu einer Einheit zusammen, z.B. Koordinaten. In Python funktionieren Tupel als Container ähnlich wie Listen, haben aber den großen Unterschied, dass sie unveränderlich sind (immutable). Deklariert werden sie mit runden Klammern.

coords = (51.2562,7.1508)

print(coords)

Die Koordinaten der besten Stadt der Welt 😉 können im weiteren Programmablauf nicht mehr verändert werden. Warum auch, die Stadt wandert ja nicht?

Mit Tupeln kannst du mehrere Werte auf einmal per return aus einer Methode zurückgeben.

def get_coords():
  coords = (51.2562,7.1508)

  return coords

print(get_coords())

Dictionaries

Dictionaries eignen sich hervorragend, Datenbankzeilen zu speichern, da sie einer ID ein Objekt zuordnen.

 encoding utf-8

kfz = {
 'W':'Wuppertal',
 'HH':'Hamburg',
 'D':'Düsseldorf',
 'DO':'Dortmund', 
 'H':'Hannover',
 'M':'München'}

print(kfz)
print(kfz['W'])

Du siehst hier, dass jedem Stadtnamen getrennt durch den Doppelpunkt ein KFZ-Kennzeichen zugeordnet wird. Da das Kennzeichen eindeutig ist, eignet sich es als Schlüssel. Über den Schlüssel kannst jetzt die abgelegten Daten abrufen

Prüfen, ob ein Schlüssel im Dictionary ist

Es ist sehr einfach, auf einen vorhandenen Schlüssel zu testen:

if 'W' in kfz:
  print('ist enthalten')

Iteration über Dictionary

Durch ein Dictionary zu laufen ist etwas komplizierter als bei Listen, du läufst letztendlich durch die Liste der Schlüssel und holst darüber den zugehörigen Wert aus dem Dictionary

 encoding utf-8

kfz = {
 'W':'Wuppertal',
 'HH':'Hamburg',
 'D':'Düsseldorf',
 'DO':'Dortmund', 
 'H':'Hannover',
 'M':'München'}

for key in kfz:
  print(f' Kennzeichen {key} -> Stadt {kfz[key]}')

Die Schleife lässt sich auch verkürzt schreiben.

for key, stadt in kfz.items():

  print(f' Kennzeichen {key} -> Stadt {stadt}')

Du kannst dir die Listen mit den Werten bzw. den Schlüsseln auch einzeln zurückgeben lassen. Die items() enthalten dann die Schlüssel-/Werte-Paare

items = kfz.items())
keys = kfz.keys())

Element entfernen

Um ein Element aus dem Dictionary zu entfernen, gehst du genauso vor wie bei einer Liste

del kfz['D']

Element aktualisieren

Du kannst einem Schlüssel auch einen neuen Wert zuweisen.

kfz['DO'] = 'Theremouth'

Das war es dann auch schon mit den Python Container Datenstrukturen. Im nächsten Teil wird’s mit der Objektorientierung richtig spannend.

Schreibe einen Kommentar

Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Olli Graf - raspithek.de
WordPress Cookie Hinweis von Real Cookie Banner