W tym poście zobaczymy, jak stworzyć pustą listę o podanym rozmiarze w Pythonie.
Aby przypisać dowolną wartość do listy za pomocą operatora przypisania na pozycji i, a = x
, rozmiar listy powinien wynosić co najmniej i+1
. W przeciwnym razie podniesie IndexError
, jak pokazano poniżej:
1
2
3
4
5
|
a =
a = 1
print(a)
# raise IndexError: list assignment index out of range
|
Rozwiązaniem jest utworzenie pustej listy None
gdy elementy listy nie są z góry znane. Można to łatwo zrobić, jak pokazano poniżej –
1
2
3
4
|
a = * 5
print(a)
# prints
|
Powyższy kod utworzy listę o rozmiarze 5
, gdzie każda pozycja jest inicjalizowana przez None
None
jest często używany w pythonie do reprezentowania braku wartości.
Inną alternatywą dla tworzenia pustych list o danym rozmiarze jest użycie list comprehensions:
1
2
3
4
|
a =
print(a)
# prints , , , , ]
|
Którego rozwiązania użyć?
Pierwsze rozwiązanie działa dobrze dla typów niereferencyjnych, takich jak liczby. Ale w niektórych przypadkach możesz napotkać błędy referencji. Na przykład, ] * 5
spowoduje, że lista będzie zawierała ten sam obiekt listy powtórzony 5
razy.
1
2
3
4
5
|
a = ] * 5
a.append(1)
print(a)
# prints , , , , , ]
|
Rozwiązaniem tego problemu jest użycie list comprehensions, takich jak ta:
1
2
3
4
5
|
a = for x in range(5)]
a.append(1)
print(a)
# prints , , , , , , ]
|