Python 空列表是否等于无?

Python 空列表是否等于无?,python,python-3.x,python-2.7,ironpython,Python,Python 3.x,Python 2.7,Ironpython,可能重复: 根据python的三元运算符,我对python是新手 >>> 'true' if True else 'false' true true 我希望下面的代码输出为[],因为[]不等于零 >>> a=[] >>> a==None False >>> a if a else None None 如果我错了,请改正 谢谢 hema空列表,[],不等于无 但是,它可以计算为假——也就是说,它的“真实性”值是假

可能重复:

根据python的三元运算符,我对python是新手

>>> 'true' if True else 'false'  true
   true
我希望下面的代码输出为[],因为[]不等于零

>>> a=[]
>>> a==None
False
>>> a if a else None
None
如果我错了,请改正

谢谢
hema

空列表,
[]
等于

但是,它可以计算为假——也就是说,它的“真实性”值是假。(参见OP上留下的评论中的来源。)

因此,

>>[]==False
假的
>>>如果[]:
...     打印“真的!”
... 其他:
...     打印“假!”
假的!

None
NoneType
的唯一实例,通常用于表示没有值。在您的示例中发生的情况是,在布尔上下文中,空列表的计算结果为
False
,条件失败,因此执行else分支。口译员的工作大致如下:

>>> a if a else None
    [] if [] else None
    [] if False else None
None

下面是另一个关于
None
的有用讨论:

请参阅文档以了解更多信息。最好的答案是
[]!=False
但是
bool([])==False
@Lattyware是的,这是最简洁的方式,但是我认为Python新手可能很难理解。哦,事实上,我并不是建议你删除你的精彩解释,只是换一种方式。@GarethLatty的答案是我想要的。My函数根据条件从列表中删除内容,如果列表变为空,则应返回false
return bool([])
非常适合于此。@VISQL您仍然不需要
bool([])
,您只需返回
[]
,因为
[]
计算false-y。