检查列表是否只包含空值的最有效方法是什么(如果列表为空,而不是空元素列表)?我在for循环中使用了着名的pythonic隐式booleaness方法:
def checkEmpty(lst):
for element in lst:
if element:
return False
break
else:
return True
周围有什么更好的吗?
答案 0 :(得分:16)
if not any(lst):
# ...
应该有效。如果传递的iterable的任何元素评估any()
,则True
返回True
。相当于:
def my_any(iterable):
for i in iterable:
if i:
return True
return False
答案 1 :(得分:3)
len([i for i in lst if i]) == 0
答案 2 :(得分:2)
使用all
:
if all(item is not None for i in list):
return True
else:
return False
答案 3 :(得分:1)
>>> l = ['', '', '', '']
>>> bool([_ for _ in l if _])
False
>>> l = ['', '', '', '', 1]
>>> bool([_ for _ in l if _])
True