例如,如果通过以下步骤:
a = []
如何检查a是否为空?
例如,如果通过以下步骤:
a = []
如何检查a是否为空?
当前回答
已经给出了很多答案,其中很多都很好。我只是想加上那张支票
not a
也将通过None和其他类型的空结构。如果您确实想检查空列表,可以执行以下操作:
if isinstance(a, list) and len(a)==0:
print("Received an empty list")
其他回答
您甚至可以尝试像这样使用bool()。虽然它的可读性较低,但它确实是一种简洁的方法。
a = [1,2,3];
print bool(a); # it will return True
a = [];
print bool(a); # it will return False
我喜欢这种方式,因为检查列表是否为空。
非常方便和有用。
Pythonic的做法来自PEP8风格指南。
对于序列(字符串、列表、元组),请使用空序列为false的事实:#正确:如果不是seq:如果seq:#错误:如果len(seq):如果不是len(seq):
让我来到这里的是一个特殊的用例:我实际上想要一个函数来告诉我列表是否为空。我想避免在这里编写自己的函数或使用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是最佳选择。
要检查列表是否为空,可以使用以下两种方法。但请记住,我们应该避免显式检查序列类型的方式(这是一种不太像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"
从python3开始,您可以使用
a == []
检查列表是否为空
编辑:这也适用于python2.7。。
我不知道为什么有这么多复杂的答案。这很清楚明了