Si quieres aprender a crear una lista vacía en Python de forma eficiente, entonces este artículo es para ti.
Aprenderás:
- Cómo crear una lista vacía usando corchetes
.
- Cómo crear una lista vacía usando
list()
. - Sus casos de uso.
- Qué tan eficientes son (¡uno es más rápido que el otro!). Utilizaremos el módulo
timeit
para compararlos.
¡Comencemos! ✨
🔹 Usando corchetes
Puedes crear una lista vacía con un par de corchetes vacíos, así:
💡 Consejo: Asignamos la lista vacía a una variable para utilizarla posteriormente en nuestro programa.
Por ejemplo:
num =
La lista vacía tendrá la longitud 0
, como puedes ver aquí mismo:
>>> num = >>> len(num)0
Las listas vacías son valores falsos, lo que significa que se evalúan a False
en un contexto booleano:
>>> num = >>> bool(num)False
Añadir elementos a una lista vacía
Puedes añadir elementos a una lista vacía utilizando los métodos append()
y insert()
:
-
append()
añade el elemento al final de la lista. -
insert()
añade el elemento en el índice concreto de la lista que elijas.
Dado que las listas pueden ser valores verdaderos o falsos dependiendo de si están vacías o no cuando se evalúan, puedes usarlas en condicionales como este:
if num:print("This list is not empty")else:print("This list is empty")
La salida de este código es:
This list is empty
Porque la lista estaba vacía, por lo que se evalúa a False.
En general:
- Si la lista no está vacía, evalúa a
True
, por lo que se ejecuta la cláusula if. - Si la lista está vacía, evalúa a
False
, por lo que se ejecuta la cláusula else.
Ejemplo:
En el siguiente ejemplo, creamos una lista vacía y la asignamos a la variable num
. A continuación, mediante un bucle for, añadimos una secuencia de elementos (enteros) a la lista que inicialmente estaba vacía:
>>> num = >>> for i in range(3, 15, 2):num.append(i)
Comprobamos el valor de la variable para ver si los elementos se han añadido con éxito y confirmar que la lista ya no está vacía:
>>> num
💡 Consejo: Comúnmente utilizamos append()
para añadir el primer elemento a una lista vacía, pero también puedes añadir este elemento llamando al método insert()
con índice 0
:
>>> num = >>> num.insert(0, 1.5) # add the float 1.5 at index 0>>> num
🔸 Usando el constructor list()
Alternativamente, puedes crear una lista vacía con el constructor de tipo list()
, que crea un nuevo objeto lista.
Según la documentación de Python:
Si no se da ningún argumento, el constructor crea una nueva lista vacía,
💡 Consejo: Esto crea un nuevo objeto de lista en memoria y como no pasamos ningún argumento a list()
, se creará una lista vacía.
Por ejemplo:
num = list()
Esta lista vacía tendrá la longitud 0
, como puedes ver aquí mismo:
>>> num = list()>>> len(num)0
Y es un valor falso cuando está vacío (evalúa a False
en un contexto booleano):
>>> num = list()>>> bool(num)False
Ejemplo:
Esta es una lista totalmente funcional, por lo que podemos añadirle elementos:
>>> num = list()>>> for i in range(3, 15, 2):num.append(i)
Y el resultado será una lista no vacía, como puedes ver aquí mismo:
>>> num
🔹 Casos de uso
- Típicamente usamos
list()
para crear listas a partir de iterables existentes como cadenas, diccionarios o tuplas. - Es común ver corchetes
que se utilizan para crear listas vacías en Python porque esta sintaxis es más concisa y rápida.
🔸 Eficiencia
¡Espera! Te acabo de decir que es más rápido que
list()
…
¿Pero cuánto más rápido?
Comprobemos sus eficiencias de tiempo utilizando el módulo timeit.
Para usar este módulo en tu programa de Python, necesitas importarlo:
>>> import timeit
En concreto, usaremos la función timeit de este módulo, que puedes llamar con esta sintaxis:
💡 Consejo: El código se repite varias veces para reducir las diferencias de tiempo que puedan surgir de factores externos como otros procesos que puedan estar ejecutándose en ese momento concreto. Esto hace que los resultados sean más fiables a efectos de comparación.
🚦 En sus marcas… ¡preparados… listos! Aquí está el código y el resultado:
Primero, importamos el módulo.
>>> import timeit
Después, empezamos a probar cada sintaxis.
Testando :
>>> timeit.timeit('', number=10**4)0.0008467000000109692
Testando list():
>>> timeit.timeit('list()', number=10**4)0.002867799999989984
💡 Consejo: Fíjate en que el código que quieres cronometrar tiene que ir rodeado de comillas simples ''
o de comillas dobles ""
. El tiempo devuelto por la función timeit
se expresa en segundos.
Compare estos resultados:
-
0.0008467000000109692
-
list()
0.002867799999989984
Puedes ver que es mucho más rápido que
list()
. Hubo una diferencia de aproximadamente 0.002
segundos en esta prueba:
>>> 0.002867799999989984 - 0.00084670000001096920.0020210999999790147
Estoy seguro de que debes estar preguntando esto ahora mismo: ¿Por qué list()
es menos eficiente que si hacen exactamente lo mismo?
Pues… list()
es más lento porque requiere buscar el nombre de la función, llamarla y luego crear el objeto lista en memoria. En cambio, es como un «atajo» que no requiere tantos pasos intermedios para crear la lista en memoria.
Esta diferencia de tiempo no afectará mucho al rendimiento de tu programa pero está bien saber cuál es más eficiente y cómo funcionan entre bastidores.
🔹 En resumen
Puedes crear una lista vacía utilizando un par de corchetes vacíos o el constructor de tipo
list()
, una función integrada que crea una lista vacía cuando no se le pasan argumentos.
Los corchetes se utilizan habitualmente en Python para crear listas vacías porque es más rápido y conciso.
Espero de verdad que te haya gustado mi artículo y te haya resultado útil. Ahora puedes crear listas vacías en tus proyectos de Python. Consulta mis cursos online. Sígueme en Twitter. ⭐️
Si quieres profundizar en las listas, puede que te guste leer:
- Añadir una lista en Python – Cómo añadir un elemento a un array, explicado con ejemplos
- El método de ordenación de listas en Python – Ascendente y descendente explicado con ejemplos
- Añadir una lista en Python VS Extender una lista en Python – La diferencia explicada con ejemplos del método de arrays
.