Python3 – Teil 3 Lists, Tupel und Sets

Erwartete Lesezeit: 4 minuten

Kommen wir nun zu Thema Listen , Tupel und Sets und wie unterscheiden sie sich.

Listen

Kurz gesagt sind Listen eine eine Reihe von Elementen in einer bestimmten Reihenfolge. Man kann auf sie über einen Index oder innerhalb einer Schleife zugreifen.

Beispiel:

tiere = ['Hund','Katz','Maus']

Signifikant für Listen sind die eckigen Klammern.
Jedes der Elemente einer Liste hat eine Index. Zu beachten ist , dass es wie bei vielen anderen Programmiersprachen ein nullbasierter Index ist, d.h. das erste Element ist an Indexposition 0.

Um auf den Eintrag Hund an der ersten Position in der Liste zuzugreifen, nutzt man den Variable gefolgt vom Index in eckigen Klammern:

tiere = ['Hund','Katz','Maus']
print(tiere[0])

Greift man mit einem nicht existieren Index auf eine Liste zu, wird eine Index-out-of-range Exception geworfen.

Möchte man durch alle Einträge einer Liste durchiterieren, kann man dieses mittels einer For-Schleife machen. (Mehr zu Schleifen kommt in einem späteren Beitrag)

tiere = ['Hund','Katz','Maus']
for tier in tiere:
print(tier)

Als Ausgabe erhalten wir beim Ausführen des Codes:

Hund
Katz
Maus

In den seltensten Fällen erzeugt man Listen mit festen Werten. Im Normalfall wird dieses programmtechnisch gelöst. Hierzu wird für eine Variable eine leere Liste angelegt. Im Anschluss kann man über die Listenmethode append() einen neuen Eintrag zur Liste hinzuzufügen.

tiere = []
tiere.append('Hund')
tiere.append('Katze')
tiere.append('Maus')

Genauso einfach wie das Hinzufügen ist das Entfernen von Einträgen von Einträgen. Wir stellen fest, dass sich Hund , Katze und Maus nicht vertragen und wollen die Katze entfernen. Hierzu können wir die Listmethode remove() nutzen:

tiere = ['Hund','Katz','Maus']
tiere.remove('Katze')

Neben append() und remove gibt es noch eine Anzahl weiterer Methoden , zu denen kommen wir in einem späteren Beitrag.

Nun betrachten wir mal das Anlegen von nummerischem Listen. In dem folgendem Beispiel wollen wir nun die Quadratzahlen von den Zahlen 1 bis 10 in einer Liste erzeugen. Dieses können wir über die folgende For schleife machen.

quadratzahlen = []
for x in range(1, 11):
quadratzahlen.append(x**2)
print(quadratzahlen)

als Ergebnis kommt die folgende Liste heraus:

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

Wie ihr sicherlich gemerkt habt , mussten wir in der Rangeanweisung 1, 11 angeben. Er geht den Schleifeninhalt für jede Zahl die kleiner ist als 11 durch. Erreicht er 11 wird die Verarbeitung der Schleife unterbrochen.

Aber kommen wir noch nochmal zu dem obigen Beispiel. Für die Erstellung der Liste haben wir 3 Zeilen Code benötigt.
Wir können die Erzeugung mittels einer einzelnen Befehlszeile erreichen. Diese Technik nennt sich List Comprehension und wird als gute Programmiermethode unter Pythonentwicklern angesehen

Für unser Beispiel sieht die komprimierte Variante wie folgt aus :

quadratzahlen = [x**2 for x in range(1, 11)]

Tuple

Tupel ähneln Listen, aber die Elemente in einem Tupel können nicht geändert werden. Einträge können aber hinzugefügt und geändert werden.
Signifikant für Listen sind die runden Klammern.

tuple = ('Hund','Katze','Maus')

Die lesenden Zugriffe können wie bei den Listen über den nullbasierten Index als auch über die For-Schleife erfolgen. Mittels append() und remove() können Werte hinzugefügt bzw. gelöscht werden. Möchte man also in einem Tupel z.B. den Eintrag von Maus auf Mäuse ändern , kann man das nur machen , indem man den alten Eintrag löscht und den neuen hinzufügt.

Sets

Sets ähneln Tuplen. Ihre Werte können ebenfalls nicht nachträglich geändert werden. Der einzige Unterschied zwischen Sets und Tuplen liegt in der Fähigkeit Duplikate von Werten speichern zu können. Im Gegensatz zu Tuplen und auch Listen können Sets keine Duplikate speichern. Signifikant für Listen sind die geschweiften Klammern. Wenn wir also ein Set aus Tieren in unserem Beispiel erzeugen, in dem

tierset = {'Hund','Katze','Maus','Hund'}
print(tierset)

Als Ausgabe bekommt man

{'Hund', 'Katze', 'Maus'}

Bei Sets kann man ebenfalls mittels append() und remove() Werte hinzufügen bzw. löschen.