检查空值列表

时间:2012-08-30 15:43:33

标签: python empty-list

检查列表是否只包含空值的最有效方法是什么(如果列表为空,而不是空元素列表)?我在for循环中使用了着名的pythonic隐式booleaness方法:

def checkEmpty(lst):
    for element in lst:
        if element:
            return False
            break
    else:
        return True

周围有什么更好的吗?

4 个答案:

答案 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