lum*_*ota 3 python list python-3.x
如果我在元组中有一个列表,然后尝试将该列表与另一个列表连接起来,我会得到一个例外:
>>> a = ([1], [2])
>>> a[1] += [3]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
Run Code Online (Sandbox Code Playgroud)
这是预期的:连接是创建一个新列表,元组是不可变的.但是,尽管有例外,元组已更新:
>>> print(a)
([1], [2, 3])
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
那是因为串联(+
)首先发生,然后是赋值.
由于这里元组的元素list
是可变的 s ,所以a[1] + [3]
会成功,但由于元组本身是不可变的,所以串联输出的分配a[1]
将失败(预期).
归档时间: |
|
查看次数: |
48 次 |
最近记录: |