0
>>> 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] 的列表值。但是,如果赋值运算符左侧有两个变量,情况就会发生变化。变量右侧的列表不再是值,而是列表的元素是值。

有人会好心解释为什么会这样。提前致谢。

也许我误解了“拆包”是什么。当赋值运算符左侧有多个变量时,规则会改变吗?

4

1 回答 1

-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)

这就是为什么左侧有多个值的行为不同的原因。

于 2017-10-11T03:20:01.340 回答