我知道有些人不赞成这种做法,但我喜欢使用 Python 的三元运算符,因为它使操作变得简单if
/else
陈述读起来更清晰(我认为)。无论如何,我发现我不能这样做:
>>> a,b = 1,2 if True else 0,0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: too many values to unpack
我认为三元运算符的工作方式是它本质上构建了以下内容:
if True:
a,b = 1,2
else:
a,b = 0,0
有人可以解释为什么我的第一个代码示例不起作用吗?并且,如果有的话,提供一个单行代码来有条件地分配多个变量?
它将其解析为三个值,它们是:
1,
2 if True else 0,
0
因此它变成了三个值(1,2,0
),它大于表达式左侧的两个值。
Try:
a,b = (1,2) if True else (0,0)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)