In diesem Beitrag lernst du, was Python Tupel (bzw. auf Englisch Python Tuple) sind und wie diese funktionieren.

Wer sich mit ein wenig mit Python auskennt, weiß sicher, was Listen in Python sind. Falls nicht weißt wie Listen in Python funktionieren, kannst du es in diesem Python-Tutorial lernen.

Neben den Listen bietet Python aber noch weitere Strukturen, die sich für die Aufnahme von Daten eignen. Ein Beispiel hierfür ist das Python Tupel. Dieses kann, genau wie eine Liste, beliebig viele einzelne Informationen unterschiedlichen Typs aufnehmen. Um ein Tupel zu erstellen, musst du beinahe genau gleich vorgehen, wie bei einer Liste. Lediglich die eckigen Klammern musst du dabei durch eine runde Klammer ersetzen. Alternativ dazu kannst du die Klammern auch ganz weglassen:

meinTupel = (3,6,9)

oder:

meinTupel = 3,6,9

Der Zugriff auf einen Eintrag im Tupel läuft ebenfalls identisch ab wie bei einer Liste – über den sogenannten Index. Auch hierbei ist es möglich, über den Doppelpunkt (:) verschiedene Teilbereiche des Tupels abzurufen – so wie bei den Listen. Das nennt man String Slicing. Wie genau es funktioniert, kannst du hier nachlesen.

Einträge zum Python Tupel hinzufügen

Wenn du einen Wert zu einem Tupel hinzufügen willst, dann ist das wie bei Listen durch das Pluszeichen (+) möglich. Allerdings musst du darauf achten, dass es sich bei den Werten, die du hinzufügen willst, ebenfalls um Tupel handeln muss. Wie du in Python Tupel aus mehreren Werten erstellst, hast du bereits im oberen Beispiel gesehen. Wenn nur ein einziger Wert enthalten sein bzw. hinzugefügt werden soll, dann musst du nach dem Eintrag ein Komma (,) hinzufügen, um die Datenstruktur als Tupel zu kennzeichnen. Dabei kannst du den Wert in Klammern schreiben oder ihn ohne Klammern angeben:

meinTupel += (8,)

oder:

meinTupel += 8,

Werte eines Tupels sind unveränderbar

Bislang scheinen Tupel in Python genau gleich zu funktionieren wie Listen. Dass es dabei einen wesentlichen Unterschied gibt, erkennst du jedoch, wenn du einen Eintrag eines Tupels ändern willst. Um das zu verdeutlichen, soll nun der Versuch unternommen werden, dabei auf die gleiche Weise wie bei einer Liste vorzugehen – indem man einem Feld über dessen Index einen neuen Wert zuweist:

meinTupel[1] = 12

Probiere es aus und erzeuge zunächst das Tupel wie oben beschrieben und füge dann den Befehl ein. Dabei erhältst du eine Fehlermeldung. Das liegt daran, dass sich Python Tupel dadurch auszeichnen, dass sie unveränderlich sind. Wenn du einmal einen Wert eingibst, dann bleibt dieser bis zum Ende des Programms gleich. Daher eignet sich diese Datenstruktur immer dann, wenn die Werte unveränderlich bleiben.

Wenn beispielsweise ein Händler sein Sortiment in einem Programm erfasst, dann bieten sich Tupel für Daten wie den Produkttyp an. Dieser ist unveränderlich, da aus einem Teller nicht plötzlich eine Tasse oder ein Topf wird. Für veränderliche Daten wie den Preis oder die vorrätigen Artikel ist dieser Datentyp jedoch nicht geeignet, hier würde man Listen verwenden.

Manchmal kommt es vor, dass der größte Teil der Daten unveränderlich ist, sodass es sinnvoll wäre, Tupel zu verwenden. Das sorgt für eine bessere Performance und schützt die Daten vor unbeabsichtigten Veränderungen. Sobald aber nur ein einzelner Wert auftauchen sollte, den du verändern willst, ist das bei Tupeln per Definition nicht mehr möglich.

Allerdings gibt es einen Trick, wie du auch Daten in einem Python Tupel verändern kannst: indem du sie in eine Liste verpackst. Wenn ein Tupel eine Datenstruktur mit veränderlichen Werten enthält, kannst du die Einträge modifizieren.

Um beim vorherigen Beispiel zu bleiben: Wenn du das Sortiment erfassen willst, kannst du den Produkttyp einfach in das Tupel schreiben. Für den Preis erzeugst du eine Liste mit nur einem Feld:

meinProdukt = ("Teller", [2.99])

print(meinProdukt)

meinProdukt[1][0] = 3.49

print(meinProdukt)

Für den Zugriff auf den Wert musst du in diesem Fall zunächst den Index im Tupel und dann den Index in der Liste angeben. Das Tupel ist die übergeordnete Struktur. Es enthält zwei Werte. Der Zugriff soll auf den zweiten Wert erfolgen – daher der Index 1. Die Liste hat nur einen einzigen Wert, daher der Index 0.

Wenn du dieses Programm nun ausführst, erkennst du, dass sich der Wert problemlos verändern lässt.

Tupel bieten außerdem den Vorteil, dass sie bei der Verarbeitung eine etwas bessere Performance bieten als Listen. Wenn du sehr große Datenmengen bearbeitest, bei denen eine hohe Rechenkapazität notwendig ist, bietet es sich daher an, wenn möglich Tupel statt Listen zu verwenden.

Python Tupel

(Auszug aus dem Python Komplettkurs)

← Edley Insights

Python Listen und Listenfunktionen

← Edley Insights

Wer Python lernen will, kommt am Thema Listen nicht vorbei. In diesem Tutorial lernst du alles, was du über Listen und Listenfunktionen in Python wissen musst. Viel Spaß! (Hinweis: Dieses Tutorial ist ein Auszug aus dem Python Komplettkurs.)

Python Listen

Im Alltag ist es üblich, Informationen in Listen zu schreiben. Das sorgt für eine ordentliche und übersichtliche Darstellung. Wenn du die Liste gut strukturierst, findest du später alle Informationen einfach wieder. Es ist ebenfalls möglich, Listen in Python zu verwenden. Die Python List ist ein sehr mächtiges Instrument dieser Programmiersprache und wird daher oft benutzt.

Wenn du eine Python Liste erstellen willst, musst du ihr zunächst einen Namen geben. Dabei gelten die gleichen Regeln wie für gewöhnliche Variablennamen.

Danach musst du der Liste mit dem Gleichheitszeichen Werte zuweisen. Diese müssen in einer eckigen Klammer stehen. Die einzelnen Einträge musst du durch ein Komma trennen. Wenn du beispielsweise eine Liste erzeugen willst, die die Werte 3, 6 und 9 enthält, benötigst du dafür folgenden Befehl:

meineListe = [3, 6, 9]

Wenn du eine Python Liste erzeugst, dann kann diese jeden beliebigen Datentyp enthalten. Es ist sogar möglich, innerhalb der Python Listen unterschiedliche Datentypen zu verwenden. Du kannst beispielsweise einen Integer-Wert, eine Fließkommazahl und eine String-Variable in einer Liste zusammenfassen:

meineListe2 = [51, 1.82, "blau"]

Verschachtelte Listen in Python

Es ist sogar möglich, eine Liste aus mehreren untergeordneten Python Listen zu erstellen. Das führt zu einer tabellenartigen Struktur. Das ist besonders praktisch, wenn du mehrere Gegenstände mit mehreren Eigenschaften zusammenfassen willst. Die folgende Liste erfasst bei drei Personen das Alter, die Größe und die Augenfarbe:

personen = [[51, 1.82, "blau"], [25, 1.76, "braun"], [38,1.80,"graublau"]]

Du kannst eine bestehende Python Liste auch erweitern. Dazu kommt das Pluszeichen zum Einsatz. Dabei musst du berücksichtigen, dass sich dieses nur auf mehrere Listen anwenden lässt. Daher musst du den Eintrag, den du hinzufügen willst, ebenfalls in eckige Klammern schreiben. Das bewirkt, dass er als Liste behandelt wird. Wenn du beispielsweise meineListe2 um einen Eintrag für den Wohnort erweitern willst, benötigst du dafür folgenden Befehl:

meineListe2 = meineListe2 + ["Berlin"]

Wenn du eine Liste aus mehreren Listen erstellt hast und daran einen weiteren Eintrag anhängen willst, dann benötigst du sogar eine doppelte Klammer. Sonst fügt das Programm die Werte in die übergeordnete Liste ein, ohne eine weitere untergeordnete Liste zu erstellen.

Das nächste Beispiel fügt zur Liste personen, die bereits drei untergeordnete Python Listen enthält, eine vierte untergeordnete Liste hinzu, um eine weitere Person aufzunehmen:

personen = personen + [[19,1.92, "braun"]]

Indizierung von Listen in Python

Eine der ersten Sachen, die du in Python lernst, ist die Ausgabe mit der print-Funktion. Wenn du eine einfache Variable ausgeben willst, dann musst du dafür ihren Namen in eine print-Funktion schreiben. Das Gleiche ist auch bei Listen möglich. Wenn du das tust, dann gibt das Programm die komplette Liste aus:

meineListe = [3, 6, 9]
print (meineListe)

Die Ausgabe: [3, 6, 9]

Häufig ist es jedoch nicht erwünscht, die komplette Liste auszugeben. Stattdessen kann es sinnvoll sein, nur auf einen einzelnen Wert zuzugreifen. Dieses Verfahren wird als Indizierung (python list indexing) bezeichnet. Dafür ist es notwendig, die Indexnummer in eine eckige Klammer hinter die Liste zu schreiben. Die Funktionsweise beim Python List Indexing ist genau die gleiche wie bei Strings. Auch hier beginnt die Zählung mit dem Index 0:

meineListe = [3, 6, 9]
print (meineListe[0])
print (meineListe[1])
print (meineListe[2])

Auf Teilbereiche von Listen zugreifen

Bei den Zeichenketten in Python konntest du bereits lernen, dass es mithilfe des Doppelpunktes möglich ist, auf einen Teilbereich zuzugreifen. Genau das gleiche Verfahren kannst du auch auf Listen anwenden. Auch die Verwendung negativer Zahlen – um am Ende der Liste zu beginnen – ist hierbei zulässig.

Wenn du eine ineinander verschachtelte Python Liste verwendest, musst du zwei Indexnummern angeben. Die erste bezieht sich dabei auf die übergeordnete Liste, die zweite auf die untergeordnete. Das folgende Beispiel erstellt wieder eine Liste aus drei Personen mit jeweils drei Eigenschaften. Diese entspricht der ersten verschachtelten Liste, die wir bereits weiter oben in diesem Tutorial verwendet haben. Danach gibt das Programm die Größe der ersten Person und das Alter der dritten Person aus:

personen = [[51, 1.82, „blau"], [25, 1.76, "braun"], [38,1.80, "graublau"]]
print (personen[0][1])
print (personen[2][0])

Listen-Methoden

Neben den einfachen Operatoren, die wir im vorherigen Abschnitt kennengelernt haben, gibt es auch bei Python Listen vorgefertigte Methoden, die viele Aufgaben erleichtern. Um diese zu nutzen, musst du immer zunächst die Liste angeben, auf die du sie anwenden willst. Danach folgt zunächst ein Punkt und danach die entsprechende Methode. Genau wie bei Zeichenketten ist die Auswahl an Methoden sehr groß. Im Folgenden werden die wichtigsten vorgestellt. Um die Listen-Methoden kennenzulernen, soll zunächst ein Beispielprogramm entstehen, das diese anwendet:

liste1 = [4, 6, 8]
liste2 = [9, 10]


liste1.append(12)
print (liste1)

liste1.extend(liste2)
print (liste1)

liste1.insert(3, 15)
print (liste1)

liste1.remove(9)
print (liste1)
print (liste1.index(8))
print (liste1.count(15))

liste1.reverse()
print (liste1)

liste1.sort()

print (liste1)

Wichtige Listen-Methoden in Python

Eine sehr wichtige Funktion ist append(). Diese hängt das Element, das in der Klammer angegeben ist, an die Liste an.

Die extend()-Methode hängt die Liste, die in der Klammer angegeben ist, an die Liste an, auf die wir die Funktion anwenden. Der Effekt ist genau der gleiche wie bei der Verwendung des Pluszeichens. Anstatt liste1.extend(liste2) zu schreiben, wäre es auch möglich, den Befehl liste1 += liste2 zu verwenden.

Sehr praktisch ist die insert()-Methode. Diese erlaubt es, ein Element an einer beliebigen Stelle in die Liste einzufügen. Der erste Parameter gibt dabei die Position an, der zweite das Element, das du einfügen willst. Alle Elemente der bisherigen Liste, die nach der angegebenen Position stehen, werden um eine Stelle nach hinten verschoben.

Die remove()-Methode entfernt ein Element aus der Liste. Dabei ist es wichtig, darauf zu achten, dass du hierbei nicht die Position angeben musst, sondern das Element, das du entfernen willst. Wenn dieses
mehrfach in der Liste auftaucht, löscht die Methode alle Einträge.

Die index()-Methode gibt an, an welcher Position das Element, das du in der Klammer angibst, das erste Mal in der Liste auftaucht.

Die count()-Methode gibt an, wie häufig das in der Klammer angegebene Element in der Liste erscheint.

Mit der reverse()-Methode kannst du die Reihenfolge der gesamten Liste umkehren.

Die sort()-Methode sortiert die Liste. Du kannst sie auf Python Listen anwenden, die entweder ausschließlich
Zeichenketten oder ausschließlich Zahlen enthalten. Die Sortierung erfolgt dann alphabetisch oder nach Größe. Es ist jedoch nicht möglich, sie auf Listen anzuwenden, die sowohl Zeichenketten als auch Zahlen enthalten.

Python Print List

python-list

Die Ausgabe der Listen aus dem Beispielprogramm

← Edley Insights oder zum Python Komplettkurs →

In diesem Tutorial lernst du alles rund um Python Strings. Falls noch Fragen offen bleiben sollten, kannst du diese gerne an unseren Support senden. Wenn du von Grund auf Python lernen willst, ist der Python Komplettkurs wahrscheinlich interessant für dich.

Python Strings

In diesem Tutorial lernst du:

  1. Was sind Python Strings?
  2. Strings in Python ausgeben (print string)
  3. String einer Variable zuweisen
  4. Strings ändern und löschen
  5. Python String Formatierung
  6. Python String Index – auf Elemente im String zugreifen
  7. String Slicing in Python
  8. Länge (length) von Strings in Python
  9. Python String Methoden

Was sind Python Strings?

Einfach ausgedrückt sind Strings in Python nichts anderes als eine Aneinanderreihung von Zeichen. Man verwendet für Strings daher häufig auch den Begriff Zeichenketten. Um in Python einen String zu kennzeichnen, verwendet man einfache (' ') oder doppelte (" ") Anführungszeichen, z. B.:

"Hey!"
#oder
'Hey!'

Um einen String auf dem Bildschirm auszugeben, verwendet man die print-Funktion. Gib dazu den Begriff print ein, gefolgt von Runden Klammern (()). In diese Klammern schreibst du deinen String:

print("Hey!")

Auf dem Bildschirm erscheint dann die Ausgabe: Hey!


String einer Variable zuweisen

Im oberen Beispiel haben wir mit “Hey!” einen relativ kurzen String verwendet. Bei längeren Strings kann es jedoch anstrengend und chaotisch werden, diesen jedes Mal erneut einzugeben.

Hier bietet Python die Möglichkeit, Variablen zu verwenden. Eine Variable ist ein Platzhalter, der einen bestimmten Wert annehmen kann – zum Beispiel den Wert eines Strings.

Beispiel:

x = "Hey, mein Name ist Alexa. Wie geht es dir heute?"

In diesem Beispiel haben wir eine Variable (mit dem Variablennamen x) und einen String (nämlich "Hey, mein Name ist Alexa. Wie geht es dir heute?").

Um den String der Variable zuzuweisen, wird das Gleichheitszeichen (=) verwendet.

Anstatt nun immer den ganzen String einzugeben, kannst du einfach das x verwenden. Wenn du den String also zum Beispiel auf dem Bildschirm ausgeben willst, kannst du das einfach mit folgendem Befehl machen:

print(x)

Die Ausgabe ist dann: Hey, mein Name ist Alexa. Wie geht es dir heute?


Strings ändern und löschen

Strings ändern

Der einfachste Weg einen String zu ändern, ist ihn der Variable einfach mit einem neuen Wert zuzuweisen. Der alte Wert wird dann überschrieben:

mein_string = "Ich bin der alte String"
mein_string = "Ich bin der neue String"

print(mein_string)

Ausgabe: Ich bin der neue String

Strings löschen

Grundsätzlich ist es in Python nicht möglich, im Nachhinein einzelne Zeichen aus einem String zu löschen.

Du kannst jedoch einzelne Zeichen mit der replace()-Methode ersetzen. Die Python String replace Methode wird im Abschnitt string()-Methoden genauer erklärt.


Python String Formatierung

In Python gibt es auch die Möglichkeit, Strings zu formatieren. Das bedeutet, dass du den String so veränderst, dass er in einer anderen Form (z. B. in Großbuchstaben) auf dem Bildschirm ausgegeben wird.

Für die Python String Formatierung haben wir einen eigenes Tutorial geschrieben: Python String Formate

Falls dich das Thema interessiert, bekommst du dort genauere Informationen und kannst dann wieder zu diesem Tutorial zurückkehren.


Python String Index – auf Elemente im String zugreifen

Manchmal kommt es vor, dass man auf einzelne Zeichen im String zugreifen will. Das geht in Python über den String Index – also die Position oder Stelle des Zeichens, auf das man zugreifen will.

Hierbei gilt zu beachten, dass die erste Stelle immer den Index 0 hat. Die zweite Stelle hat den Index 1, usw.

Um auf das Zeichen zuzugreifen, gibst du den Variablennamen gefolgt von eckigen Klammern ein, in denen sich der Index befindet. Im folgenden Beispiel soll nur das erste l von Hello World! mit der print-Funktion ausgegeben werden.

x = "Hello World!"
print(x[2])

Die Ausgabe lautet: l

Zum Vergleich:

Mit print(x[0]) wäre die Ausgabe: H

Mit print(x[4]) wäre die Ausgabe: o

Was mit positiven Zahlen geht, geht in Python auch mit negativen Zahlen. Dies wird dann negativer Index genannt.

Hierbei beginnst du am Ende der Zeichenkette mit dem Zählen und setzt ein Minus vor die Indexzahl. Theoretisch wäre die Zahl ganz am Ende dann -0. Da Null aber nicht negativ sein kann, kann damit nicht auf das letzte Zeichen des Strings zugegriffen werden. Daher verwendet man hierfür den Index -1. Das vorletzte Zeichen Hat dann den Index -2, usw.

Das folgende Schaubild soll das Konzept des Python String Index verdeutlichen:

Der String “Edley” mit Index und negativem Index

String Slicing in Python

Wenn du auf eine Reihe von Zeichen zugreifen willst, kannst du das über das über die Python Slicing Notation machen. Mit dem Slicing extrahierst du, wie der Name schon verrät, nur ein bestimmtes Stück (Slice) des Strings. Das Vorgehen ist dabei fast das Gleiche wie beim Zugreifen auf ein einzelnes Zeichen über den Index.

Der Unterschied ist, dass man beim Slicing sowohl einen Startpunkt als auch einen Endpunkt braucht. Beide Punkt werden wieder in eckigen Klammern über die Indexnummern angegeben – getrennt von einem Doppelpunkt (:). Beispiel:

x = "Hello World!"
print(x[3:7])

Ausgabe: lo W

Slicing geht in Python natürlich auch mit dem negativen Index.


Länge (length) von Strings in Python

Um in Python die Länge (length) von Strings zu bestimmen, kannst du die Funktion len() verwenden, die bereits in Python eingebaut ist.
Für Methoden und Funktionen gibt es auf Edley bald ein eigenes Tutorial. Falls du nicht warten willst: Im Python-Kurs wird alles ausführlich von A – Z erklärt.

Um beispielsweise die Anzahl der Zeichen im String “Hello, World!” zu zählen und mit print auszugeben, muss der Name der Variable (oder der String direkt) in die Klammern der Funktion len() geschrieben werden. Leerzeichen werden auch mitgezählt.

x = ("Hello World!")
print(len(x))

Die Ausgabe: 12

Die Funktion len() funktioniert in Python übrigens nicht nur mit Strings, sondern auch mit Tupeln, Listen, Dictionaries, usw.


Python String Methoden

In Python gibt es eine Reihe von String Methoden, die bereits integriert sind. Mit diesen kannst du häufig auftretende Aufgaben einfach lösen.
Die wichtigsten werden im Folgenden vorgestellt.

upper()

Mit der String-Methode upper() kannst du alle Buchstaben eines Strings in Großbuchstaben umwandeln. Dabei schreibt man zuerst den Namen der Variable, dann einen Punkt und dann die Methode. Beispiel:

x = "Hello World!"
print(x.upper())

Die Ausgabe: HELLO WORLD!

Das Gegenteil wird mit der String-Methode lower() erreicht. Hierbei werden alle Buchstaben eines Strings in Kleinbuchstaben umgewandelt.

capitalize()

Mit der String-Methode capitalize() wird nur der erste Buchstabe eines Strings in einen Großbuchstaben umgewandelt.

isdigit()

Die Methode isdigit() prüft, ob ein String in Python nur aus Zahlen besteht. Ist das der Fall, so wird True ausgegeben. Ansonsten wird False ausgegeben.

count()

Mit der String-Methode count() kann man zählen, wie oft ein bestimmtes Zeichen oder eine Zeichenfolge in einem String vorkommt. Hierbei muss zusätzlich das Zeichen, das gezählt werden soll, in die Klammern der Methode eingegeben werden. Beispiel:

x = "Hello World!"
print(x.count("l"))

Die Ausgabe: 3
Da der Buchstabe l in Hello World! drei Mal vorkommt.

replace()

Mit der Python String replace()-Methode kannst du einzelne Zeichen eines Strings durch andere ersetzen.

x = "Hello World!"
print (x.replace("Hello", "Hey"))

Ausgabe: Hey World!

split()

Der Python String Split bzw. split()-Methode teilt einen String in eine Liste, in der jedes Wort aus dem String ein Listeneintrag wird. Beispiel:

x = "Hello World!"
print (x.split())

Die Ausgabe: ['Hello', 'World!']

In der Praxis würde man die Liste in den meisten Fällen nicht einfach mit der print()-Funktion ausgeben, sondern die Liste im weiteren Python-Code verwenden.

strftime()

Darüber hinaus gibt es in Python die Möglichkeit, mit der strftime()-Methode das Datum und die Uhrzeit in einen String zu schreiben bzw. Datum und Uhrzeit aus einem String zu extrahieren.

Hierbei ist das Vorgehen etwas komplizierter, da zuerst ein Modul importiert werden muss. (Wir empfehlen, zunächst die Python Grundlagen zu verstehen, bevor man versucht, mit Python Datetimes in Strings zu arbeiten.)

Im ersten Schritt importierst du also das Modul: from datetime import datetime (Genau genommen importiert man die Klasse datetime aus dem Modul datetime.)

Anschließend setzt du eine neue Variable mit dem Zeitstempel. In diesem Fall verwenden wir als Zeitformat (time format) die Unixzeit. Dieses Format ist sinnvoll, wenn dein Programm in verschiedenen Ländern funktionieren soll, da die meisten Länder unterschiedliche Datums- und Zeitformate verwenden. Mit dem Unix-Format bist du auf der sicheren Seite. Hier kannst du Uhrzeiten in dieses Format umrechnen.

Im nächsten Schritt erstellst du eine neue Variable, die mit Hilfe der datetime()-Methode das Datum und die Uhrzeit aus dem Zeitstempel im Unix-Format extrahiert.

Schließlich gibst du das Datum und die Uhrzeit einfach über den print-Befehl aus. In diesem Beispiel wurde über den Unix-Zeitstempel ein Datum in der Zukunft festgelegt.

from datetime import datetime
zeitstempel = 1902925200
zeit = datetime.fromtimestamp(zeitstempel)
print(zeit)

Die Ausgabe: 2030-04-20 16:20:00