Top

Tupel, Listen, Dicts

Tupel und Listen werden in Python als Sequenzen bezeichnet.
Dictionaries sind Schlüssel/Wert Paare.
Allen Sequenzen stehen einige allgemeine Funktionen zur Verfügung.
Mit len() kann man die Länge der Sequenz ermitteln. max() und min() gibt das größte und kleinste Element zurück.
Der Operator in kann genutzt werden um zu prüfen ob ein bestimmtes Element vorhanden ist.

Tupel

Dieser Datentyp kann jede Art von Objekt aufnehmen und kann beliebig verschachtelt werden.
Tupel werden durch Vergleich jeder Komponente von links nach rechts verglichen.
Tupel können nur verändert werden in dem man sie zerlegt und wieder neu zusammenbaut.

>>> tup = ()
>>> tup = (1, 2, 3)
>>> tup = (1, 2, 3, (4, 5))

Man kann Tupel auch verketten (addieren) oder wiederholen (multiplizieren).

>>> (1, 2) + (3, 4) + (5, 6)
(1, 2, 3, 4, 5, 6)
>>> (1, 2) * 3
(1, 2, 1, 2, 1, 2)

Tupel sind indexbasiert und können über einen Index angesprochen werden, sie fangen mit 0 an.

>>> tup[2]
3

Tupel können über Slicing nur bestimmte Bereiche ausgeben. Der Bereich wird in eckigen Klammern in der Form [begin:end] definiert.
Wobei begin und end optinal sind und positive sowie negative Werte enthalten können.

>>> tup = (1, 2, 3)
>>> print(tup[:2])
(1, 2)
>>> print(tup[1:])
(2, 3)

Mit der Funktion tuple() kann man auch Tupel erzeugen, der Parameter wird dazu iteriert.

>>> tuple('abcd')
('a', 'b', 'c', 'd')
>>> tuple(['a','b','c','d'])
('a', 'b', 'c', 'd')
>>> tuple({'a': 'b', 'c': 'd'})
('a', 'c')
>>> tuple([i + 1 for i in range(3)])
(1, 2, 3)

Tupel unterstützen .count() um die Anzahl eines bestimmten Elements zu ermitteln.

>>> tuple(['a','b','c','d']).count('b')
1

Listen

Dieser Datentyp kann jede Art von Objekt aufnehmen und kann beliebig verschachtelt werden.
Listen können dynamisch wachsen und schrumpfen, sie werden durch Vergleich jeder Komponente von links nach rechts verglichen.

>>> list = []
>>> list = [1, 2, 3]
>>> list = ['eins', 'zwei', 'drei']
>>> list = [i + 1 for i in range(3)]

Listen sind indexbasiert und können über einen Index angesprochen werden, sie fangen mit 0 an.

>>> list = [1, 2, 3, 4]
>>> list[2]
3

Listen können über Slicing nur bestimmte Bereiche ausgeben. Der Bereich wird in eckigen Klammern in der Form [begin:end] definiert.
Wobei begin und end optional sind und positive sowie negative Werte enthalten können.

>>> list = [1, 2, 3]
>>> print(list[:2])
[1, 2]

Mit der Funktion list() kann man auch Listen erzeugen, der Parameter wird dazu iteriert.

>>> list('abcd')
['a', 'b', 'c', 'd']
>>> list(range(4))
[0, 1, 2, 3]

Listen besitzen einige Funktionen, .append() fügt ein Element am Ende der Liste ein.
Mit .insert() fügt man ein Element in einer Liste an einer bestimmten Stelle ein.
Den Index des erst gefundenen Elements bekommt man mit der Function .index().
Ein Element aus einer Liste entfernt man mit .remove() wobei nur das erst gefunde entfernt wird.
Mit .sort() wird eine Liste aufsteigend nach Werten sortiert, .reserve() dreht die Reihenfolge einer Liste um.

Dictionaries

Dieser Datentyp kann jede Art von Objekt aufnehmen und kann beliebig verschachtelt werden.
Sie werden verglichen, als ob es sortierte Listen wären (Schlüssel, Wert).

>>> dic = {}
>>> dic = {'Eins': 1, 'Zwei': 2}
>>> dic['Eins']
1

Dictionaries besitzen keinen Index wie Tupel oder Listen. Zudem unterstützen Dictionaries kein Slicing.

Mit der Funktion dict() kann man auch Dictionaries erzeugen.

>>> dic = dict(Eins=1, Zwei=2)
>>> dic
{'Eins': 1, 'Zwei': 2}

Dictionaries besitzen einige Funktionen, .keys() gibt eine Liste mit allen Schlüsseln zurück.
Mit .values() erhält man eine Liste mit allen Werten zurück. Ein Tupel mit (Schlüssel, Wert) erhält man mit .items().

>>> for key, value in dic.items():
...     print('{}: {}'.format(key, value))

Alle Eintäge kann man mit .clear() entfernen, einzelne Eintrüage löscht man mit del dict['Eins'].
Prüfen ob ein Schlüssel vorhanden ist kann man mit .has_key() und eine flache Kopie erhält man mit .copy().
Mit .update() wird ein Eintrag erzeugt oder aktualisiert.

>>> dic.update({'Drei': 3})