在 Python 中解压缩列表的概念 - 冲突的语法规则


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

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

也许我误解了"开箱"是什么。 当赋值运算符左侧有多个变量时,规则会更改吗?

这是一个简单的作业:

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)

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

相关内容

最新更新