Listen in Python

Die Zeichenkette ist eine ganz spezielle Liste. Es gibt aber auch noch den allgemeinen Datentyp »Liste« in Python, in dem beliebige Listen aller Art gespeichert werden können, nicht nur Zeichenketten. In anderen Programmiersprachen heißt die Liste »Array«. Allerdings können Python-Listen etwas mehr als die meisten Arrays in anderen Sprachen. Sie werden sehr häufig verwendet.

Listen werden mit eckigen Klammern definiert, die einzelnen Elemente werden durch Komma getrennt.

Zum Beispiel eine Liste der Primzahlen unter 30:

primliste  =  [2,3,5,7,11,13,17,19,23,29]

Gibt man die Variable primliste wieder aus:

print primliste

dann wird sie wieder in dieser Form angezeigt.

[2, 3, 7, 11, 13, 17, 19, 23, 29]

Mit Listen kann man nun die gleichen Sachen machen wie mit Zeichenketten – und noch so einiges mehr. Wir werden an den Beispielen nachher sehen, wie praktisch Listen sein können. Zwei oder mehr Listen können mit dem +-Zeichen aneinandergehängt werden:

primliste1  =  [2,3,5,7,11,13,17,19,23,29]
primliste2 = [31,37,41,43,47]
gesamtliste = primliste1 + primliste2
print gesamtliste

Als Ausgabe erhalten wir hier also die zusammengesetzte Liste:

[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]

Ebenso kann man Listen (wie String-Variablen) multiplizieren:

liste = [7]
print liste * 5

ergibt

[7,7,7,7,7]

Nun ein kleines erstes Programm, das zeigt, wie man Listen zum Nachschlagen verwenden kann.

primliste  =  [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]
x = input("Gib eine Zahl unter 50 ein")
if x in primliste:
print x,"ist eine Primzahl."
else:
print x,"ist keine Prinzahl."

Das wäre also ein anderes Verfahren, um zu ermitteln, ob eine Zahl eine Primzahl ist. Anstatt es zu berechnen, schaut das Programm einfach in einer Liste nach, ob die Zahl vorkommt. Der Befehl dazu:

if x in primliste:

Mit dem Wörtchen in kann man in Python prüfen, ob ein Wert in einer Liste enthalten ist. (Natürlich ist das Berechnen der Primzahl aus dem vorigen Kapitel der sinnvollere Weg, denn schließlich müsste die Liste sonst extrem lang werden, wenn man auch höhere Zahlen berücksichtigen will. Aber gleich werden wir sehen, wo Listen noch mehr Sinn machen.)

Listen können natürlich nicht nur Zahlen enthalten, sondern auch Zeichen oder Zeichenketten sowie mathematische Ausdrücke:

gemischt = [7,2.55,-25,"Hallo","*",5*3]
print gemischt

Das ergibt als Ausgabe dann:

[7, 2.55, -25, 'Hallo', '*', 15]

Du kannst auf jedes einzelne Element der Liste ebenso zugreifen wie auf die Zeichen einer Zeichenkette:

print gemischt[3]

ergibt

Hallo

Auch hier hat das erste Element der Liste wieder den Index [0]. Das letzte kann man auch mit dem Index [-1] ansprechen. Ebenso wie bei den Zeichenketten kann man auch mehrere aufeinanderfolgende Elemente ansprechen (range):

print gemischt[2:5]

ergibt

[-25, 'Hallo', '*']

Aber im Gegensatz zu Zeichenketten können Werte auch in einzelne Listenelemente geschrieben werden.

gemischt = [7,2.55,-25,"Hallo","*",5*3]
gemischt[0] = "Neu"
print gemischt

Das ergibt als Ausgabe:

['Neu', 2.55, 'Hallo', '*', 15]

Das erste Element der Liste [0] wurde hier überschrieben, statt einer 7 steht nun die Zeichenkette »Neu« drin.