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