Introducción
Las listas son una de las cuatro estructuras de datos más utilizadas que proporciona Python. Su funcionalidad, extensibilidad y facilidad de uso la hacen útil para implementar varios tipos de funcionalidades.
Las listas de Python tienen unas cuantas características interesantes:
- Mutabilidad – es decir, puede cambiar, lo que significa que nos permite añadir y eliminar entradas de ella fácilmente. Esta es la principal diferencia entre las listas de Python y las tuplas
- Iterabilidad – lo que significa que podemos iterar a través de ella (recorrer todos los elementos de la lista en orden)
El principal atributo en el que nos centraremos es la Iterabilidad. Una parte importante cuando se trata de un objeto iterable, en este caso una lista, es comprobar si hay algo por lo que iterar. Si no se maneja adecuadamente, esto puede llevar a muchos errores no deseados.
Python proporciona varias formas de comprobar si nuestra lista está vacía o no, algunas implícitas y otras explícitas, y en este artículo, repasaremos cómo comprobar si una lista de Python está vacía.
- Utilizando la función
len()
- Utilizando
len()
con un operador de comparación - Comparación con lista vacía
- Pep-8 Estilo recomendado (más popular y aconsejado)
- Usando la función
bool()
Usando la función len()
Una de las técnicas es usar la función len()
para comprobar si nuestra lista está vacía o no:
py_list = """Here len() returns 0, which is implicitly converted to false"""if len(py_list):print('The list is not empty')else:print('T list is empty')
Salida
List is empty
Cuando len(py_list)
se ejecuta produce un cero, que se convierte implícitamente en el valor booleano de False
. Así, en caso de que la lista esté vacía, el programa será redirigido al bloque else.
Aunque este método parece sencillo, no es tan intuitivo para los principiantes.
Usando len() con el operador de comparación
Esta técnica es similar a la anterior pero es más explícita y fácil de entender. Por eso los que son nuevos en python o en la codificación en sí suelen considerarla más intuitiva:
if len(py_list) == 0:print('List is empty')else:print('List not empty')
En el código anterior, len(py_list) == 0
será true si la lista está vacía y se redirigirá al bloque else. Esto también permite establecer otros valores también, en lugar de depender de que 0
se convierta en False
. El resto de valores positivos se convierten en True
.
Comparación con una lista vacía
Este método también es muy sencillo y funciona bien para los principiantes, ya que consiste en comparar con una lista vacía:
if py_list == :print('List is empty')else:print('List is not empty')
Aquí también estamos utilizando la operación de comparación para comparar una lista con otra – am vacía, y si ambas están vacías se ejecutará el bloque if
.
Estilo recomendado por Pep-8
#PEP-8 recommended styleif py_list:print('List is not empty')if not py_list:print('List empty')
Para ello, vamos a echar un vistazo a las pruebas de valor de verdad. Los docs oficiales dicen que:
Aquí están la mayoría de los objetos incorporados que se consideran falsos:
- Constantes definidas para ser falsas: None y False.
- Cero de cualquier tipo numérico: 0, 0.0, 0j, Decimal(0), Fracción(0, 1)
- secuencias y colecciones vacías: », (), , {}, set(), range(0)
Como una lista vacía es en realidad sólo una colección vacía, se convertirá en un valor booleano de False
. Por lo tanto, si py_list
está vacío, se convertirá en False
.
La segunda declaración es bastante similar, excepto que not
invertirá la condición de falso a verdadera. Este enfoque es muy similar al enfoque if(len(list))
.
Este es el enfoque preferido ya que es la solución más limpia y corta que existe.
Usando la función bool()
También podemos usar la función bool()
para verificar que una lista está vacía:
#As truth value testing says braces denotes falseif bool(py_list):print('List is not empty')else:print('List is empty')
Esto es básicamente una prueba de valor de verdad implementada manualmente. Así que si la lista no está vacía la función devolverá True
y se ejecutará el bloque if.
Este enfoque es menos común ya que podemos conseguir los resultados deseados incluso sin usar bool()
, pero no está de más saber cómo funciona Python bajo el capó.
Conclusión
Este artículo trataba sobre las formas de comprobar si nuestra lista en python está vacía o no. Empezamos explorando diferentes técnicas y finalmente viendo algunos parámetros que podemos utilizar para hacer nuestro juicio con respecto a qué técnica puede funcionar para nosotros.
No puedo decir que este es el final ya que las nuevas actualizaciones de Python pueden dar lugar a nuevos y más mejorados estilos de codificación. Así que es mejor seguir explorando y seguir aprendiendo.
0 comentarios