205
7.4
Listen
7.4.1 Eine Liste erzeugen
Eine Liste kann auf sehr vielfältige Weise geschaffen werden. Das sprachliche Konstrukt zur
Generierung von Listen wird in der Python-Dokumentation Listendisplay (list display) ge-
nannt. Ein großer Teil der Python-Grammatik bezieht sich allein auf die Definition von Lis-
ten. Hier die wichtigsten Syntaxregeln:
Fangen wir mit dem Einfachsten an. Sie können eine Liste erzeugen, indem Sie ihre Ele-
mente aufzählen und in eckige Klammern setzen. Die Listenelemente werden explizit
genannt (erstes Beispiel) oder in einem Ausdruck berechnet (zweites Beispiel):
list comprehension
Eine Liste kann man auch auf abstrakte Weise generieren – ähnlich wie in der Mathematik
Mengen definiert werden. Man schreibt in die eckigen Klammern eine Konstruktions-
vorschrift gemäß den obigen Grammatikregeln. Dabei werden die Elemente der neuen Liste
aus den Elementen einer vorhandenen Liste gewonnen. Eine solche kompakte Konstruk-
tionsvorschrift wird auch als list comprehension bezeichnet. Sie kann folgendes Format haben:
Die Elemente der Liste werden im Ausdruck
ausdruck berechnet. Für jedes Element der
Liste
andereliste wird einmal der Ausdruck ausdruck ausgewertet und das resultierende
list_display ::=
"[" [listmaker] "]"
listmaker::=
expression ( list_for | ( "," expression)* [","] )
list_iter::=
list_for | list_if
list_for::=
"for" expression_list "in" testlist [list_iter]
list_if ::=
"if" test [list_iter]
>>> liste1 = [1, 2, 3, 4]
>>> liste2 = ["Abend", 2, (1,2)]
>>> liste3 = [4+2, 4-2, 4*2, 4/2, 4**2]
>>> liste3
[6, 2, 8, 2, 16]
liste4 = []
>>> for i in [1, 2, 3, 4, 5]:
liste4 = [i, liste4]
>>> liste4
[5, [4, [3, [2, [1, []]]]]]
liste = [ausdruck for element in andereliste]
Kapitel 7
Sequenzen, Mengen und Generatoren
206
Objekt der neuen Liste hinzugefügt. Im folgenden Beispiel wird eine Liste von Quadrat-
zahlen definiert. Der Ausdruck zur Berechnung der Listenelemente heißt
i**2. Die Vari-
able
i nimmt alle Werte der Liste [0, 1, 2, 3, 4] an.
Hilfreich ist häufig die Verwendung der
range()-Funktion. Der Aufruf range(n) liefert
eine Folge der ganzen Zahlen von
0 bis n-1.
Die Listendefinition kann noch durch einen Test erweitert werden. Nur die Objekte, die
einer bestimmten Bedingung genügen, werden in die Liste aufgenommen:
Beispiele:
Liste von Zahlen, die durch
7 teilbar sind:
Gemeinsame Elemente zweier Listen
A und B:
Eine Liste von Paaren mit Elementen aus zwei Listen:
>>> b = [i**2 for i in [0, 1, 2, 3, 4]]
>>> b
[0, 1, 4, 9, 16]
>>> b = [i**2 for i in range(5)]
>>> b
[0, 1, 4, 9, 16]
liste = [ausdruck for element in andereliste if bedingung]
>>> c = [i for i in range(50) if i%7 == 0]
>>> c
[0, 7, 14, 21, 28, 35, 42, 49]
>>> A = [1, 2, 3, 4]
>>> B = [2, 3 ,4, 5]
>>> C =[i for i in a if i in b]
>>> C
[2, 3, 4]
>>> A = ['a', 'b', 'c']
>>> b = [1, 2, 3]
>>> C = [(i,j) for i in A for j in B]
>>> C
[('a', 1), ('a', 2), ('a', 3), ('b', 1), ('b', 2), ('b', 3), ('c', 1),
('c', 2), ('c', 3)]

Get Python 3 - Lernen und professionell anwenden now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.