Bitte warten...

Python: Listen

► Python-Dokumentation: Sequence Types

Listen sind Feldvariablen (Arrays), die wie Tupel eine Gruppe von Werten beliebigen Typs speichern können. Im Gegensatz zu Tupeln können die Elemente einer Liste nachträglich geändert werden. Listen werden von eckigen Klammern [] umschlossen. Die einzelnen Elemente einer Liste werden über den fortlaufenden Index angesprochen, wobei das erste Element den Index 0 besitzt.

Code kopieren
a = ["Hans", "Meier", 34, True]
print(a)
print(a[1])
print(type(a))
print(type(a[1]))
a[2] = 35
print(a)

Elemente einer Liste ausgeben

► Python-Dokumentation: for

Mit for/in (s. Schleifen) können alle Elemente einer Liste ausgegeben werden:

Code kopieren
a = ["A", "B", "C", "a", "b", "c"]
for e in a:
    print(e)

Liste in Elemente zerlegen

► Python-Dokumentation: Common Sequence Operations

Die Anzahl der Elemente einer Liste lässt sich wie bei Strings, Tupeln und Dictionaries mit der Funktion len() ermitteln. Listen können wie Strings und Tupel in ihre Bestandteile zerlegt werden.

Code kopieren
a = ["Hallo", 5, True, False, -8, "Welt!"]
print(len(a))
print(a[3])    # Gibt das Element an Position 3 aus.
print(a[2:4])  # Es werden die Elemente mit dem Index 2 bis ausschließlich Index 4 ausgegeben.
print(a[:3])   # Es werden die Elemente vom Anfang des Feldes bis ausschließlich Index 3 ausgegeben.
print(a[1:])   # Es werden die Elemente mit dem Index 1 bis zum Ende des Feldes ausgegeben.
print(a[-5:])  # Es werden die letzten 5 Elemente ausgegeben.

Vorkommen von Elementen ermitteln

► Python-Dokumentation: if

Mit if/in (s. Bedingungen) kann geprüft werden, ob sich ein bestimmtes Element in einer Liste befindet:

Code kopieren
a = ["A", "B", "C", "a", "b", "c"]
if "d" in a:
    print("\"d\" ist enthalten.")
else:  # gleichbedeutend mit: if "d" not in a
    print("\"d\" ist nicht enthalten.")

► Python-Dokumentation: Common Sequence Operations

Mit der Funktion count() lässt sich die Anzahl gesuchter Elemente innerhalb von Listen (wie bei Strings und Tupeln) ermitteln.

Code kopieren
a = ["Hallo", 5, True, False, True, -8, "Welt!"]
print(a.count("Welt!"))
print(a.count("x"))
print(a.count(True))

Index eines Elements bestimmen

► Python-Dokumentation: Common Sequence Operations

Um den Index eines gesuchten Elements innerhalb einer Liste (oder eines Tupels) zu ermitteln, wird die Funktion index() verwendet.

Code kopieren
a = ["Hallo", "a", 5, True]
print(a.index("a"))
print(a.index(7))  # Die Suche nach einem nicht vorhandenen Index führt zu einem ValueError.

Element(e) zu einer Liste hinzufügen

► Python-Dokumentation: Common Sequence Operations

Mit Hilfe von append() wird ein neues Element an eine bestehende Liste angehängt. Mit insert() wird ein neues Element an einer bestimmten Position in der Liste eingefügt. Der Index der nachfolgenden Element wird dadurch erhöht. Mit dem Operator + kann eine Liste um eine weitere Liste ergänzt werden.

Code kopieren
a = ["Hallo", "a", 5, True]
a.append(42)
a.insert(1, "Welt!")  # Das erste Argument gibt die Position des neuen Elements an.
print(a)

a += ["Ene", "Mene", "Mopel"]

Element(e) aus einer Liste entfernen

► Python-Dokumentation: Common Sequence Operations

Mit remove() wird das erste Element aus einer Liste entfernt, das das übergebene Argument als Wert hat. Mit pop(x) wird das Element an Position x zurückgegeben und gleichzeitig entfernt.

Code kopieren
a = ["Hallo", "a", 5, True, "a"]
a.remove("a")
print(a)

p = a.pop(2)
print(a)
print(p)

Liste sortieren

► Python-Dokumentation: sort sorted

Mit sort() wird eine Liste sortiert, wobei die Liste nur Elemente des selben Datentyps beinhalten darf. Strings werden case-sensitive sortiert.

Mit Hilfe der Funktion sorted() kann eine sortierte Instanz einer Liste erzeugt werden, ohne dabei die zugrunde liegende Liste selbst zu verändern.

Code kopieren
a = ["C", "a", "b", "A", "c", "B"]
a.sort()
print(a)

a = ["C", "a", "b", "A", "c", "B"]
print(sorted(a))

Liste umkehren

► Python-Dokumentation: Mutable Sequence Operations reversed

Mit reverse() lässt sich die Reihenfolge der Elemente einer Liste umkehren.

Mit Hilfe der Funktion reversed() kann eine umgekehrte Instanz einer Liste erzeugt werden, ohne dabei die zugrunde liegende Liste selbst zu verändern.

Code kopieren
a = ["A", "B", "C", "a", "b", "c"]
a.reverse()
print(a)

a = ["A", "B", "C", "a", "b", "c"]
r = reversed(a)
b = []
for e in r:
    b.append(e)
print(b)

Liste kopieren

Während durch den Operator = bei numerischen Variablen und Strings eine eigenständige Kopie einer Variable mit neuem Namen erzeugt wird, erzeugt der Operator bei Listen, Tupeln und Dictionarys lediglich eine Instanz. Das bedeutet, dass der Wert der Instanz sich auch dann ändert, wenn das ursprüngliche Objekt geändert wird. Dies wird durch folgendes Beispiel veranschaulicht:

Code kopieren
a = ["Hans", "Meier", 34, True]
b = a
a[0] = "Paula"
print(b)

► Python-Dokumentation: copy

Um eine eigenständige Kopie einer Liste zu erzeugen, kann die Methode deepcopy aus dem Modul copy verwendet werden. Hierbei werden auch bei enthaltenen Elementen, die selbst Listen, Tupel oder Dictionarys sind, Kopien und keine Instanzen erzeugt.

Code kopieren
import copy

x = ["Schach", "Kochen", "Tanzen"]
a = ["Hans", "Meier", 34, True, x]
b = copy.deepcopy(a)
a[0] = "Paula"
x[0] = "Halma"
print(b)

# alterative Methode (erzeugt aber keine Kopie der in a enthaltenen Liste x, sondern eine Instanz):
x = ["Schach", "Kochen", "Tanzen"]
a = ["Hans", "Meier", 34, True, x]
b = a[:]
a[0] = "Paula"
x[0] = "Halma"
print(b)
print()

Kleinstes bzw. größtes Element finden

► Python-Dokumentation: min max

Mit Hilfe der Funktionen min() bzw. max() ist es möglich, das Element einer Liste mit dem niedrigsten bzw. höchsten Wert zu ermitteln. Dies ist vor allem bei numerischen Werten sinnvoll, kann aber auch beispielsweise auf Strings angewendet werden, bei denen die Position der Elemente bei alphabetischer Sortierung der Liste als Kriterium herangezogen wird.

Code kopieren
a = [1028, 256, -42, 4711]
print(min(a))
print(max(a))

b = ["Schulze", "Schmidt", "Müller", "Meier"]
print(min(b))
print(max(b))

Elemente addieren

► Python-Dokumentation: sum

Mit Hilfe der Funktion sum() können die einzelnen Elemente einer Liste addiert werden, sofern es sich bei ihnen um Zahlen handelt. Ansonsten erzeugt diese Funktion einen TypeError.

Code kopieren
a = [1028, 256, -42, 4711]
print(sum(a))