PCEP-30-02 1.0 – Computerprogrammierung und Grundlagen von Python (18 %)
PCEP-30-02 1.1 - Grundlegende Begriffe und Definitionen verstehen
PCEP-30-02 1.2 – Logik und Struktur von Python verstehen
PCEP-30-02 1.3 – Literale und Variablen in Code einführen und verschiedene Zahlensysteme nutzen
PCEP-30-02 1.4 – Operatoren und Datentypen passend zum Problem wählen
PCEP-30-02 1.5 – Eingabe-/Ausgabe-Operationen in der Konsole durchführen
PCEP-30-02 2.0 – Kontrollfluss – Bedingte Blöcke und Schleifen (29%)
PCEP-30-02 2.1 – Entscheidungen treffen und den Programmfluss mit „if“ steuern
PCEP-30-02 3.0 – Datenkollektionen – Tupel, Dictionaries, Listen und Strings (25%)
PCEP-30-02 3.1 – Daten mit Listen sammeln und verarbeiten
PCEP-30-02 3.3 – Daten mit Dictionaries sammeln und verarbeiten
PCEP-30-02 3.4 – Mit Strings arbeiten
PCEP-30-02 4.0 – Funktionen und Ausnahmen (28%)
PCEP-30-02 4.3 – Python Built-In Exceptions Hierarchie
PCEP-30-02 4.4 – Grundlagen der Fehlerbehandlung in Python

Python: Gemeinsamkeiten und Unterschiede von Tupeln und Listen

Gemeinsamkeiten von Tupeln und Listen

  1. Beide sind Sequenzen:
    • Sowohl Listen als auch Tupel sind Sequenztypen in Python. Das bedeutet, sie unterstützen Indexierung, Slicing und Iteration.

   liste = [1, 2, 3]
tupel = (1, 2, 3)

# Indexierung
print(liste[0]) # 1
print(tupel[0]) # 1

# Iteration
for i in liste:
print(i) # 1, 2, 3
for i in tupel:
print(i) # 1, 2, 3
  1. Beide können heterogene Datentypen speichern:
    • Sie können sowohl gleiche Datentypen als auch unterschiedliche in einer einzigen Sequenz enthalten.

   liste = [1, "Zwei", 3.0, True]
tupel = (1, "Zwei", 3.0, True)
  1. Zugriff mit Indexen:
    • Bei beiden kann über einen Index ([]) auf die Elemente zugegriffen werden. Der Index beginnt bei 0.

   liste = [10, 20, 30]
tupel = (10, 20, 30)

print(liste[1]) # 20
print(tupel[1]) # 20
  1. Unterstützung für Slicing:
    • Bei beiden lassen sich Teilbereiche mittels Slicing auslesen.

   liste = [1, 2, 3, 4, 5]
tupel = (1, 2, 3, 4, 5)

print(liste[1:4]) # [2, 3, 4]
print(tupel[1:4]) # (2, 3, 4)
  1. Beide unterstützen das in-Keyword:
    • Es kann überprüft werden, ob ein Element in der Sequenz vorhanden ist.

   liste = [1, 2, 3]
tupel = (1, 2, 3)

print(2 in liste) # True
print(4 in tupel) # False

Unterschiede zwischen Tupeln und Listen

EigenschaftTupelListe
MutabilitätTupel sind unveränderlich (immutable).Listen sind veränderlich (mutable).
SyntaxTupel verwenden () oder sind komma-getrennt.Listen werden mit [] konstruiert.
PerformanceTupel sind schneller als Listen.Listen sind langsamer als Tupel.
Hinzufügen/EntfernenTupel unterstützen keine Methoden wie append, remove, etc.Listen bieten flexible Methoden wie append, pop, etc.
Zweck/VerwendungTupel werden genutzt für fixierte Daten (z. B. Koordinaten, Konfigurationsdaten).Listen werden genutzt für Daten, die sich ändern können.
SpeicherverbrauchTupel benötigen weniger Speicher.Listen verbrauchen mehr Speicher.
MethodenTupel haben nur wenige Methoden wie count() und index().Listen bieten viele Methoden wie append(), extend(), etc.
Typprüfung (hashable)Tupel sind hashable, wenn die enthaltenen Objekte hashable sind (z. B. sie können als Schlüssel in Dictionaries verwendet werden).Listen sind nicht hashable und können deshalb nicht als Schlüssel in Dictionaries genutzt werden.

Beispiele für Unterschiede

1. Unveränderlichkeit von Tupeln


tupel = (1, 2, 3)
# tupel[0] = 5 # Führt zu einem Fehler, da Tupel unveränderlich sind.

liste = [1, 2, 3]
liste[0] = 5 # Listen können verändert werden.
print(liste) # [5, 2, 3]

2. Methoden: Liste vs. Tupel


liste = [1, 2, 3]
liste.append(4) # Fügt ein Element hinzu
print(liste) # [1, 2, 3, 4]

tupel = (1, 2, 3)
# tupel.append(4) # Tupel besitzt die Methode `append` nicht.

3. Speicherverbrauch

Tupel verbrauchen weniger Speicher als Listen mit denselben Elementen.


import sys

liste = [1, 2, 3]
tupel = (1, 2, 3)

print(sys.getsizeof(liste)) # Speicherverbrauch der Liste
print(sys.getsizeof(tupel)) # Speicherverbrauch des Tupels

Zusammenfassung

Verwende:

  • Tupel, wenn du feststehende Daten abbilden möchtest, die nicht modifiziert werden sollen.
  • Listen, wenn die Daten häufig geändert oder bearbeitet werden (z. B. Hinzufügen, Entfernen, Aktualisieren von Elementen).