Link Search Menu Expand Document

Datenstrukturen

In Python gibt es Datenstrukturen, die verschiedene einfachere Datentypen enthalten die ihr schon kennt (int, float, string, …).

KürzelDatentypZuweisungAufrufelementweise Zuweisung
tupleTupelx = (1, 2, 3)x[0]-
listListex = [1, 2, 3]x[0]x[0] = 4
dictWörterbuchx = {"key1": 1, 42 : 2, "key3": 3}x["key1"]x["key1"] = 4
setMengex = {'a', 'b', 'c', 'd'}--

mutable vs. immutable

Sogenannte immutable (unveränderbare) Objekte können nicht mehr verändert werden, nachdem sie einmal in eine Variable gespeichert wurden. Mutables dagegen, können im Verlauf verschiedene Werte beinhalten.

immutablemutable
int, float, str, bool, tuplelist, dict, set

Vergleiche das Verhalten von Listen und Tupeln

var_tuple = (1, 2, 3)
var_list = [1, 2, 3]

var_tuple[0] = 2   # fuehrt zu einem TypeError - tuple sind immutable!
var_list[0] = 2    # kein Problem, die Liste ist jetzt [2, 2, 3]

Vergleich von String-Methoden und Listen-Methoden

s = s.replace('a', 'i') # Neuzuweisung des Strings in s
l.append(4)             # append verändert die Liste l direkt

Mehr zu Listen

Python List Methods

OperationEffekt
l.append(x)einzelnes Element x an l anhängen
l.extend(l2)Elemente der Liste l2 einzeln an l anhängen
l.insert(i, x)einzelnes Element x an Stelle i von l hinzufügen
del l[i]Element von l an Stelle i löschen
l2 = l1l2 ist l1
l2 = copy(l1)erstellt eine Kopie von l1 in l2 auf oberster Ebene
l2 = deepcopy(l1)erstellt auch Kopien von verschachtelten Listen
sum(l)summiert l falls möglich
list(map(f,l))wendet die Funktion f auf alle Einträge von l an.

Listen aus Tupeln

liste_aus_tupel = list(tupel)

Listen aus Strings und andersrum

s = 'Hund,Katze,Maus'
wortliste = s.split(',') # hier wir die Liste ['Hund', 'Katze', 'Maus'] erzeugt
','.join(wortliste)      # stellt den ursprünglichen String wieder her

Zugehörigkeit

Die Zugehörigkeit zu einer Liste prüft man mit in:

l = [1, 2, 3]
print(1 in l) # True
print(8 in l) # False

Slicing

l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

print(l[2:7])  # [3, .., 7]
print(l[8:])   # [9, 10]
print(l[:-3])  # [8, 9, 10]
print(l[1::2]) # [2, 4, 6, 8, 10]

Wörterbücher

Wörterbücher oder Dictionaries sind ein praktischer Datentyp, um irgendwelchen Daten (keys) irgendwelche anderen Daten zuzuordnen (values).

wb = {} 
wb["house"] = "Haus"
wb["black"] = "schwarz"
wb["cat"] ="Katze"
list(wb.keys())    # damit bekommt man eine Liste aller keys aus dem dictionary
"cat" in wb        # True, da "cat" ein Key des Wörterbuchs ist
"Katze" in wb      # False, da "Katze" KEIN Key des Wörterbuchs ist - "Katze" taucht nur als Value auf

Mengen (Zusatz)

Python kennt außer Listen auch Mengen. Eine Menge kann man entweder durch die Auflistung der Elemente in Mengenklammern angeben oder, indem man die den Typ umwandelnde Funktion set auf eine Menge anwendet. Mengen sind nicht geordnet, jedes Element kommt nur einmal vor. Die üblichem Mengenoperationen (Vereinigung, Schnitt, Differenz) sind verfügbar.

set1 = {'a', 'b', 'c', 'd'}  #Initialisierung mit geschweiften Klammern - ohne ':' für Verknüpfung wie bei dicts
set2 = set(['a', 'b', 'e', 'e'])

print("difference", set1.difference(set2))            # print(set1-set2)  # alternative Kurzschreibweise
print("union", set1.union(set2))                      # print(set1 | set2)  # alternative Kurzschreibweise
print("intersection", print(set1.intersection(set2))  # print(set1 & set2)  # alternative Kurzschreibweise