例如,如果通过以下步骤:
a = []
如何检查a是否为空?
例如,如果通过以下步骤:
a = []
如何检查a是否为空?
当前回答
让我来到这里的是一个特殊的用例:我实际上想要一个函数来告诉我列表是否为空。我想避免在这里编写自己的函数或使用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是最佳选择。
其他回答
len()是Python列表、字符串、字典和集合的O(1)操作。Python在内部跟踪这些容器中的元素数量。
JavaScript具有类似的truthy/falsy概念。
Pythonic的做法来自PEP8风格指南。
对于序列(字符串、列表、元组),请使用空序列为false的事实:#正确:如果不是seq:如果seq:#错误:如果len(seq):如果不是len(seq):
我更喜欢以下内容:
if a == []:
print "The list is empty."
print('not empty' if a else 'empty')
更实用一点:
a.pop() if a else None
最短版本:
if a: a.pop()
空列表的真值为False,而非空列表的值为True。