In questo post, vedremo come creare una lista vuota con dimensioni date in Python.
Per assegnare qualsiasi valore ad una lista usando l’operatore di assegnazione alla posizione i, a = x
, la dimensione della lista dovrebbe essere almeno i+1
. Altrimenti, solleverà un IndexError
come mostrato di seguito:
1
2
3
4
5
|
a =
a = 1
print(a)
# raise IndexError: list assignment index out of range
|
La soluzione è quella di creare una lista vuota di None
quando gli elementi della lista non sono noti in anticipo. Questo può essere fatto facilmente come mostrato di seguito –
1
2
3
4
|
a = * 5
print(a)
# stampa
|
Il codice precedente creerà una lista di dimensioni 5
, dove ogni posizione è inizializzata da None
None
è spesso usato in python per rappresentare l’assenza di un valore.
Un’altra alternativa per creare liste vuote con una data dimensione è quella di usare le list comprehension:
1
2
3
4
|
a =
print(a)
# stampa , , , , ]
|
Quale soluzione usare?
La prima soluzione funziona bene per tipi non referenziati come i numeri. Ma potresti incorrere in errori di riferimento in alcuni casi. Per esempio, ] * 5
risulterà nella lista contenente lo stesso oggetto lista ripetuto 5
volte.
1
2
3
4
5
|
a = ] * 5
a.append(1)
print(a)
# stampa , , , , ]
|
La soluzione a questo problema è usare la comprensione di liste come questa:
1
2
3
4
5
|
a = for x in range(5)]
a.append(1)
print(a)
# stampa , , , , ]
|