根据python的三元运算符,我是python新手
>>> 'true' if True else 'false' true
true
我期待下面的代码输出为 [] 因为 [] 不等于 None
>>> a=[]
>>> a==None
False
>>> a if a else None
None
如果我错了,请纠正
谢谢盒马
根据python的三元运算符,我是python新手
>>> 'true' if True else 'false' true
true
我期待下面的代码输出为 [] 因为 [] 不等于 None
>>> a=[]
>>> a==None
False
>>> a if a else None
None
如果我错了,请纠正
谢谢盒马
空列表[]
不等于。None
但是,它可以评估为False
——也就是说,它的“真实性”值为False
. (请参阅 OP 上留下的评论中的来源。)
因为这,
>>> [] == False
False
>>> if []:
... print "true!"
... else:
... print "false!"
false!
None
是 the 的唯一实例,NoneType
通常用于表示没有价值。在您的示例中发生的情况是,在布尔上下文中获取的空列表评估为False
,条件失败,因此执行 else 分支。解释器做了一些事情:
>>> a if a else None
[] if [] else None
[] if False else None
None
这是另一个有用的讨论None
:not None test in Python