根据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