Python: compruebe si una lista está vacía o no

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *