How do I test for null list entry in python list
我有一个python列表
I have a python list [1,2,,4,5,6]. What is the best method for testing
for the missing, or null, list element?
如果您只想知道列表中是否包含假值(这是Python中丢失或空值的最佳等效值),可以这样做:
1 2 3 4 5 6 | >>> all(x for x in [1,2,3,4,5]) True >>> all(x for x in [1,2,'',4,5]) False >>> all(x for x in [1,2,None,4,5]) False |
如果要知道是否存在与某些条件匹配的特定值:
1 | all(x%2 for x in [1,2,3,4,5,7]) |
如果列表包含所有偶数,则为真。
如果您的列表是
1 2 3 | >>> lst = [1, 2, None, 4, 5, 6] >>> None in lst True |
同样,如果您有其他表示"丢失"条目的值,您可以只检查
检查
1 2 3 4 5 | if element: # This is not null if not element: # This is null |
关于
结合评论和其他答案:
假值python将以下内容视为
None False - 任何数字类型的零,如:
0 、0L 、0.0 、0j 。 - 任何空序列,如:
'' 、() 、[] 。 - 任何空映射,如:
{} 。 - 如果类定义了
__nonzero__() 或ocx1〔19〕方法,当该方法返回整数zero 或bool值False 时,用户定义类的实例。
真值
所有其他值被认为是
如果您确实在检查清单中是否有
1 2 3 | >>> lst = [1, 2, None, 4, 5, 6] >>> None in lst True |
如果您想检查元素是否只有
1 2 3 4 5 | >>> lst = [1, 2, None, 4, 5, 6] >>> for x in lst: ... if not x: ... print(x) None |
但如果你的
唯一能绕过这个问题的方法是明确检查
查找存在
1 | [i for i, item in enumerate(mylist) if item is None] |
示例输出:
1 2 3 | >>> mylist = [1, 2, None, 4, 5, 6, None, None] >>> [i for i, item in enumerate(mylist) if item is None] [2, 6, 7] |