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

a = []

如何检查a是否为空?


当前回答

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

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

其他回答

方法1(首选):

if not a:
   print ("Empty")

方法2:

if len(a) == 0:
   print("Empty")

方法3:

if a == []:
  print ("Empty")

Pythonic的做法来自PEP8风格指南。

对于序列(字符串、列表、元组),请使用空序列为false的事实:#正确:如果不是seq:如果seq:#错误:如果len(seq):如果不是len(seq):

从python3开始,您可以使用

a == []

检查列表是否为空

编辑:这也适用于python2.7。。

我不知道为什么有这么多复杂的答案。这很清楚明了

空列表的真值为False,而非空列表的值为True。

让我来到这里的是一个特殊的用例:我实际上想要一个函数来告诉我列表是否为空。我想避免在这里编写自己的函数或使用lambda表达式(因为它看起来应该足够简单):

foo = itertools.takewhile(is_not_empty, (f(x) for x in itertools.count(1)))

当然,有一种非常自然的方法:

foo = itertools.takewhile(bool, (f(x) for x in itertools.count(1)))

当然,不要在if(即if bool(L):)中使用bool,因为它是隐含的。但是,对于明确需要“不为空”作为函数的情况,bool是最佳选择。