In diesem Beitrag werden wir sehen, wie man eine leere Liste mit gegebener Größe in Python erstellt.
Um einer Liste mit dem Zuweisungsoperator an der Position i, a = x
, einen beliebigen Wert zuweisen zu können, sollte die Größe der Liste mindestens i+1
sein. Andernfalls kommt es zu einem IndexError
wie unten gezeigt:
1
2
3
4
5
|
a =
a = 1
print(a)
# raise IndexError: Listenzuweisungsindex außerhalb des Bereichs
|
Die Lösung besteht darin, eine leere Liste None
zu erstellen, wenn die Listenelemente nicht im Voraus bekannt sind. Dies kann einfach wie unten gezeigt gemacht werden –
1
2
3
4
|
a = * 5
print(a)
# prints
|
Der obige Code erzeugt eine Liste der Größe 5
, wobei jede Position durch None
initialisiert wird. None
wird in Python häufig verwendet, um die Abwesenheit eines Wertes darzustellen.
Eine weitere Alternative, um leere Listen mit gegebener Größe zu erzeugen, ist die Verwendung von List Comprehensions:
1
2
3
4
|
a =
print(a)
# prints , , , , ]
|
Welche Lösung soll ich verwenden?
Die erste Lösung funktioniert gut für Nicht-Referenztypen wie Zahlen. Aber in manchen Fällen können Sie auf Referenzierungsfehler stoßen. Zum Beispiel wird ] * 5
dazu führen, dass die Liste dasselbe Listenobjekt mehrmals 5
enthält.
1
2
3
4
5
|
a = ] * 5
a.append(1)
print(a)
# prints , , , , ]
|
Die Lösung für dieses Problem ist die Verwendung von List Comprehensions wie dieser:
1
2
3
4
5
|
a = for x in range(5)]
a.append(1)
print(a)
# prints , , , , ]
|