En este post, veremos cómo crear una lista vacía con un tamaño dado en Python.
Para poder asignar cualquier valor a una lista utilizando el operador de asignación en la posición i, a = x
, el tamaño de la lista debe ser al menos i+1
. De lo contrario, levantará un IndexError
como se muestra a continuación:
1
. 2
3
. 4
5
a =
a = 1
print(a)
# raise IndexError: list assignment index out of range
|
La solución es crear una lista vacía de None
cuando los elementos de la lista no se conocen de antemano. Esto se puede hacer fácilmente como se muestra a continuación –
1
2
3
4
|
a = * 5
print(a)
# prints
|
El código anterior creará una lista de tamaño 5
, donde cada posición es inicializada por None
None
se utiliza frecuentemente en python para representar la ausencia de un valor.
Otra alternativa para crear listas vacías con un tamaño determinado es utilizar comprensiones de listas:
1
2
3
4
|
a =
print(a)
# prints , , , ,
|
¿Qué solución utilizar?
La primera solución funciona bien para tipos no referenciados como los números. Pero puedes encontrarte con errores de referenciación en algunos casos. Por ejemplo, ] * 5
hará que la lista contenga el mismo objeto de lista repetido 5
veces.
1
2
3
4
5
|
a = ] * 5
a.append(1)
print(a)
# imprime , , , , ]
|
La solución a este problema es utilizar comprensiones de lista como esta:
1
2
3
4
5
|
a = for x in range(5)]
a.append(1)
print(a)
# prints , , , ]
|