gpt4 book ai didi

python - 为什么可以扩展/附加到元组中的列表,但不能分配给它?

转载 作者:行者123 更新时间:2023-11-28 18:28:10 24 4
gpt4 key购买 nike

<分区>

阅读启发footnote 4this article .

考虑以下场景:

>>> t = (1,2, [3, 4])
>>> t[2] += [5,6]

Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
t[2] += [5,6]
TypeError: 'tuple' object does not support item assignment

元组是不可变的。因此,正如预期的那样,尝试添加到元组内的列表会引发错误。

但是如果我们检查我们的元组,列表已经被添加到!! (我可以想象这会导致很难追踪错误)

>>> t
(1, 2, [3, 4, 5, 6])

此外,两者都延伸

>>> t[2].extend([7,8])
>>> t
(1, 2, [3, 4, 5, 6, 7, 8])

和追加

>>> t[2].append(9)
>>> t
(1, 2, [3, 4, 5, 6, 7, 8, 9])

在不引发错误的情况下工作。

所以,我的问题是:

  1. 如果元组是不可变的,为什么可以更改元组中的列表?
  2. 为什么第一个示例会引发错误而其他两个不会?
  3. 在第一个示例中,为什么即使出现错误,元组中的列表也会更改?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com