2.2.6. Listen#

In Python, wie auch in den meisten anderen Sprachen, können Gruppen von Werten in einer Liste zusammengefasst werden. Listen werden in Python als eigenständiger Typ list gehandhabt. Sie fungieren als ein Container, welcher eine flexible Anzahl von Elementen beliebigen Typs beinhalten kann.

Definition#

Bei der Definition einer Liste, werden die Elemente durch [] eingeklammert und mit Kommata , getrennt.

liste1 = [5, 6, 7, 12]
print( liste1 )
[5, 6, 7, 12]
liste2 = [1.3, 'computer', 5]
print( liste2 )
[1.3, 'computer', 5]

Eine leere Liste kann mit [] erzeugt werden:

liste_leer = []
print( liste_leer )
[]

Operationen#

Genauso wie Zeichenketten, können Listen addiert werden.

liste3 = liste1 + liste2
print( liste1, liste2 )
print( liste3 )
[5, 6, 7, 12] [1.3, 'computer', 5]
[5, 6, 7, 12, 1.3, 'computer', 5]

Zugriff#

Auch der Zugriff auf einzelne Elemente erfolgt mit den eckigen Klammern []. Im Gegensatz zu Zeichenketten, können damit auch einzelne Elemente einer Liste verändert werden.

print( liste3 )
print( liste3[1] )
print( liste3[5] )
[5, 6, 7, 12, 1.3, 'computer', 5]
6
computer
liste3[0] = 'feuer'
print( liste3 )
['feuer', 6, 7, 12, 1.3, 'computer', 5]

Mit negativen Indizes können Elemente vom Ende aus angesprochen werden. So entspricht z.B. die -1 dem letzten Element.

liste4 = [11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
print( liste4[0], liste4[-1] )
11 20

Neben dem Zugriff auf einzelne Elemente, können auch Indexbereiche addressiert werden. Dazu wird die Form [a:b] verwendet, wobei a das erste addressiere und b das erste nicht-mehr addressierte Element angibt. Zusätzlich kann auch die Schrittweite c in der der Bereich zwischen a und b addressiert wird definiert werden. Dies wird mit [a:b:c] formal dargestellt.

print( liste4[3:7] )
[14, 15, 16, 17]
print( liste4[2:8:2] )
[13, 15, 17]

Werden die Werte für a, b oder c nicht angegeben, so nehmen diese die Standardwerte a=0 und c=1 an. Der Wert von b entspricht der Anzahl der in der Liste enthaltenen Elemente.

print( liste4[5:] )
[16, 17, 18, 19, 20]
print( liste4[:3] )
[11, 12, 13]
print( liste4[5:8:] )
[16, 17, 18]
print( liste4[::2] )
[11, 13, 15, 17, 19]
print( liste4 )
print( liste4[:] )
print( liste4[::] )
[11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
[11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
[11, 12, 13, 14, 15, 16, 17, 18, 19, 20]

Methoden und Funktionen#

Folgende Methoden der Listen Klasse werden häufig verwendet:

  • list.append: fügt ein neues Elemente am Ende der Liste hinzu

  • list.extend: erweitert die Liste um eine andere Liste

  • list.insert: fügt ein neues Element an einer gegebenen Stelle hinzu

  • list.sort: sortiert die Liste

liste5 = [6, 108.2, -11, 2.3, 5.6, -4.7, 0, 3]
print( liste5 )
[6, 108.2, -11, 2.3, 5.6, -4.7, 0, 3]
liste5.sort()
print( liste5 )
[-11, -4.7, 0, 2.3, 3, 5.6, 6, 108.2]
liste5.insert(1, -1)
print( liste5 )
[-11, -1, -4.7, 0, 2.3, 3, 5.6, 6, 108.2]
liste5.append( 12.345 )
print( liste5 )
[-11, -1, -4.7, 0, 2.3, 3, 5.6, 6, 108.2, 12.345]
liste5.extend( [1,2] )
print( liste5 )
[-11, -1, -4.7, 0, 2.3, 3, 5.6, 6, 108.2, 12.345, 1, 2]
liste5.append( [1,2] )
print( liste5 )
[-11, -1, -4.7, 0, 2.3, 3, 5.6, 6, 108.2, 12.345, 1, 2, [1, 2]]

Einige praktische Funktionen, welche in Python eingebaut sind:

  • len: liefert die Länge einer Liste, bzw. Sammeltyps, zurück

  • min, max: gibt das Minimum bzw. Maximum einer Liste zurück

liste6 = [6, 108.2, -11, 2.3, 5.6, -4.7, 0, 3]
print( len(liste6) )
print( max(liste6) )
8
108.2

Verschachtelte Listen#

Da Listen beliebige Datentypen aufnehmen können, können die Elemente auch selbst Listen sein. Diese verschachtelten Listen werden häufig eingesetzt und können wie folgt gehandhabt werden.

Zunächst wird eine Liste mit einem Listenelementen erzeugt:

liste7 = []
liste7.append([3,5,9])
print( liste7 )
[[3, 5, 9]]
liste7.append([-3,-1,-5])
liste7.append([0.1,0.2,0.3])
print( liste7 )
[[3, 5, 9], [-3, -1, -5], [0.1, 0.2, 0.3]]

Der Zugriff auf das erste Element liefert eine Liste zurück:

print( liste7[0] )
[3, 5, 9]

Um nun auf eines dieser Elemente zuzugreifen, wird ein weiterer Index angegeben:

print( liste7[0][2] )
9