例如,如果通过以下步骤:

a = []

如何检查a是否为空?


当前回答

您甚至可以尝试像这样使用bool()。虽然它的可读性较低,但它确实是一种简洁的方法。

    a = [1,2,3];
    print bool(a); # it will return True
    a = [];
    print bool(a); # it will return False

我喜欢这种方式,因为检查列表是否为空。

非常方便和有用。

其他回答

来自真实值测试的文档:

此处列出的值以外的所有值均视为True

没有一个错误任何数字类型的零,例如0、0.0、0j。任何空序列,例如“”、()、[]。任何空映射,例如{}。如果类定义了__bool_()或__len__()方法,则该方法返回整数零或布尔值False。

可以看出,空列表[]是错误的,因此对布尔值执行操作听起来最有效:

if not a:
    print('"a" is empty!')

我更喜欢以下内容:

if a == []:
   print "The list is empty."

要检查列表是否为空,可以使用以下两种方法。但请记住,我们应该避免显式检查序列类型的方式(这是一种不太像Python的方式):

def enquiry(list1):
    return len(list1) == 0

# ––––––––––––––––––––––––––––––––

list1 = []

if enquiry(list1):
    print("The list isn't empty")
else:
    print("The list is Empty")

# Result: "The list is Empty".

第二种方式是一种更具Python风格的方式。这种方法是一种隐式检查方法,比前一种方法更可取。

def enquiry(list1):
    return not list1

# ––––––––––––––––––––––––––––––––

list1 = []

if enquiry(list1):
    print("The list is Empty")
else:
    print("The list isn't empty")

# Result: "The list is Empty"

已经给出了很多答案,其中很多都很好。我只是想加上那张支票

not a

也将通过None和其他类型的空结构。如果您确实想检查空列表,可以执行以下操作:

if isinstance(a, list) and len(a)==0:
    print("Received an empty list")

简单的方法是检查长度是否等于零。

if len(a) == 0:
    print("a is empty")