如何在python列表中测试空列表项

如何在python列表中测试空列表项,python,Python,我有一个python列表[1,2,4,5,6]。测试缺失或null列表元素的最佳方法是什么?我当前正在执行一个if元素!=''但我认为有一个内置测试可以执行这样的操作,或者我错了吗?如果您的列表是[1,2,None,4,5,6],那么您可以在lst中选中None,例如: >>> lst = [1, 2, None, 4, 5, 6] >>> None in lst True 类似地,如果您有一些表示“缺少”条目的其他值,您可以只检查lst中的任何内容检查No

我有一个python列表
[1,2,4,5,6]
。测试缺失或
null
列表元素的最佳方法是什么?我当前正在执行一个
if元素!=''但我认为有一个内置测试可以执行这样的操作,或者我错了吗?

如果您的列表是
[1,2,None,4,5,6]
,那么您可以在lst中选中
None,例如:

>>> lst = [1, 2, None, 4, 5, 6]
>>> None in lst
True

类似地,如果您有一些表示“缺少”条目的其他值,您可以只检查lst中的
任何内容检查
None
null
的Pythonic方法是:

if element:
    # This is not null

if not element:
    # This is null
如果不是x,则
与如果x==None,则
之间的差异非常大

编辑1: 结合评论和其他答案:

假值 Python将以下内容视为
False

[i for i, item in enumerate(mylist) if item is None]
  • None
  • False
  • 任何数字类型的零,例如:
    0
    0L
    0.0
    0j
  • 任何空序列,例如:
    '
    ()
    []
  • 任何空映射,例如:
    {}
  • 用户定义类的实例,如果该类定义了
    \uuuu非零\uuuuuu()
    \uuuu len\uuuuuu()
    方法,则该方法返回整数
    或布尔值
真值 所有其他值均被视为
真值

你的问题: 如果您确实在检查列表中是否存在
None
[1,2,None,4,5,6]
),那么@Poke的答案是正确的:

>>> lst = [1, 2, None, 4, 5, 6]
>>> None in lst
True
如果要检查元素是否仅为
None
,则注释中的@esauro是正确的:

>>> lst = [1, 2, None, 4, 5, 6]
>>> for x in lst:
...  if not x:
...    print(x)
None
但是如果您的
lst
包含
0
(lst=[0,1,2,4,5,6]),那么您的输出将是
0


解决这个问题的唯一方法是显式地检查
元素是否为None
,或者
元素是否为None

查找存在
None
的所有索引:

[i for i, item in enumerate(mylist) if item is None]
示例输出:

>>> mylist = [1, 2, None, 4, 5, 6, None, None]
>>> [i for i, item in enumerate(mylist) if item is None]
[2, 6, 7]
我有一个python列表[1,2,4,5,6]。最好的测试方法是什么 是否为缺少的或空的列表元素

如果您只想知道列表中是否包含(这是Python中缺失或null的最佳等效项),可以执行以下操作:

>>> 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
如果您想知道是否存在与某些条件匹配的特定值:

all(x%2 for x in [1,2,3,4,5,7]) 

如果列表包含所有偶数,则为真。

我尝试将
[1,2,4,5,6]
输入我的解释器,并得到
语法错误。您能显示您的实际代码吗?
如果元素==None
?请注意,
None
应使用标识进行比较,而不是相等:
如果项为None
。@JonClements您能给我一个解释吗?我是python新手。我喜欢这个,因为它在检查过程中不会创建新列表。这不准确。如果
元素
为0,则不为null,但
非元素
的计算结果将为True。同样,如果元素是
[]
(一个空列表),它的计算结果将为True。因此,您应该测试
元素为无
非元素为无
谢谢@esauro-我已经根据您的评论更新了我的答案,并给出了答案谢谢@Ewan。现在的答案要完整得多。您不需要
部分中的x的
x。此外,零也将被视为假。如果要测试非真或假的内容,则需要x的
x