En este artículo, aprenderemos cómo verificar si la lista dada está vacía o no.
Ejemplo:
Input: ['Geeks', 'Geeks', 'Geeks', 'Geeks', ] Output: Yes Not Empty Input: [ ] Output: Empty
Cómo verificar si una lista está vacía en Python
Método 1: verifique la lista vacía usando len() con el operador de comparación
Veamos cómo podemos verificar si una lista está vacía o no, de una manera menos pythonica. Deberíamos evitar esta forma de verificar explícitamente una secuencia o lista
Python3
# Python code to check for empty list # Explicit way def Enquiry(lis1): if len(lis1) == 0: return 0 else: return 1 # Driver Code lis1 = [] if Enquiry(lis1): print("The list is not empty") else: print("Empty List")
Producción:
Empty List
Método 2: verifique la lista vacía usando los booleanos implícitos
Ahora veamos una forma más pythonica de buscar una lista vacía. Este método de verificación es una forma implícita de verificación y más preferible que la anterior.
Python3
# Python code to check for empty list # IMPLICIT way or Pythonic way def Enquiry(lis1): if not lis1: return 1 else: return 0 # Driver Code lis1 = [] if Enquiry(lis1): print("The list is Empty") else: print("The list is not empty")
Producción:
The list is Empty
Método 4: verifique la lista vacía utilizando el método recomendado por PEP 8
Este es otro método que nos permite determinar si una lista en Python está vacía. El método más pythonico para verificar lo mismo se muestra a continuación.
Python3
list1 = {"a": 1, "b": 2, "c": 3} list2 = [] if list2: print("list is not empty") else: print("list is empty")
Producción:
list is empty
manera numpythonica
Ejemplo 1
Los métodos anteriores que usamos en Python normal no funcionan para la forma Numpythonic . Otros métodos que funcionan bien para listas u otros contenedores estándar fallan para arrays NumPy . Esta forma falla con las arrays NumPy porque Numpy intenta convertir la array en una array de bools y si esto intenta evaluar todos esos bools a la vez para obtener algún tipo de valor de verdad agregado, falla, por lo que obtenemos un ValueError.
Python3
# Numpythonic way with the previous method # Returns ValueError import numpy def Enquiry(lis1): return(numpy.array(lis1)) # Driver Code lis1 = [0, 1] if Enquiry(lis1): print("Not Empty") else: print("Empty")
Producción:
None
Error:
Traceback (most recent call last): File "/home/2d237324bb5211d7216c521441a750e9.py", line 7, in if Enquiry(lis1): ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Ejemplo 2
En este ejemplo, veremos que incluso si la lista no está vacía, la salida mostrará Vacío. Si la lista contiene un 0, entonces la instrucción if resultará incorrecta.
Python3
# Numpythonic way with the previous method # Returns wrong result import numpy def Enquiry(lis1): return(numpy.array(lis1)) # Driver Code lis1 = [0, ] if Enquiry(lis1): print("Not Empty") else: print("Empty")
Producción:
Empty
Hacer que funcione la forma Numpythonic
Ejemplo 1
Si tenemos una array NumPy, entonces el método correcto en todos los casos es usar if .size . Este tamaño comprueba el tamaño de las arrays y devuelve True o False según corresponda. Ejemplo:
Python3
# Numpythonic way to check emptiness # Use of size import numpy def Enquiry(lis1): return(numpy.array(lis1)) # Driver Code lis1 = [] if Enquiry(lis1).size: print("Not Empty") else: print("Empty")
Producción:
Empty
Ejemplo 2
Este ejemplo muestra el otro caso con un solo elemento 0, que falló en los casos anteriores.
Python3
# Numpythonic way to check emptiness # Use of size import numpy def Enquiry(lis1): return(numpy.array(lis1)) # Driver Code lis1 = [0, ] if Enquiry(lis1).size: print("Not Empty") else: print("Empty")
Producción:
Not Empty
Publicación traducida automáticamente
Artículo escrito por Chinmoy Lenka y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA