q、 如果1<2,则w=1,2;否则为2,1;值错误:值太多,无法解压缩。为什么?

2024-04-26 13:07:00 发布

您现在位置:Python中文网/ 问答频道 /正文

如标题所述

q, w = 1, 2 if 1 < 2 else 2, 1
ValueError: too many values to unpack

这是怎么回事??在


Tags: to标题ifelsemanytoovaluesvalueerror
2条回答

如果你检查

1, 2 if 1 < 2 else 2, 1

然后您会看到python将其解释为

^{pr2}$

您将得到(1, 2, 1),它包含了q, w两个变量的太多值

因为python接受条件后的第一个逗号(1 < 2)作为单行if-else语句的结尾,并将逗号部分之后的追加到结果值集。在

在最后一个值集中加一个括号就足够了

q, w = 1, 2 if 1 < 2 else (2, 1)

但两者都使用括号肯定更好

q, w = (1, 2) if 1 < 2 else (2, 1)
q, w = (1, 2) if 1 < 2 else (2, 1)

应该能解决你的问题。虽然我不会用那种方式写代码,因为这样更难阅读。在

相关问题 更多 >