>>> x = [1,3]
>>> x
[1, 3]
>>> x[0]
1
>>> x[1]
3
>>> x,y = [1,3]
>>> x
1
>>> y
3
>>> x[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not subscriptable
据我了解,列表本身就是一个值。因此,它可以分配给变量。
这在上面的代码中很明显,其中x = [1,3]并且x返回列表值[1,3]。但是,如果赋值运算符左侧有两个变量,则情况会发生变化。变量右侧的列表不再是值,而是列表中的元素是值。
有人会善意解释为什么会这样。提前谢谢。
也许我误解了“解包”是什么。当赋值运算符左侧有多个变量时,规则是否会更改?
答案 0 :(得分:-1)
这是一个简单的任务:
x = [1, 3]
这是拆包:
x, y = [1, 3]
也许这就是你想要的:
x = y = [1, 3]
x[0] # 1
观察x, y
实际上是(x, y)
的便利性:
(x, y) = [1, 3]
x = 1, 3
x # (1, 3)
这就是为什么左边有多个值的行为不同。