0

可能重复:
List += Tuple vs List = List + Tuple

所以我遇到了一些相当奇怪的事情,想问是否有人知道为什么会这样。

列表中存在一些数据,我们想将元组中的所有值添加到该列表中(如list.extend

>>> data = [0,1,2,3,4]
>>> data += (21,22,23) # all is well
>>> print(data)
[0, 1, 2, 3, 4, 21, 22, 23]

>>> data = [0,1,2,3,4]
>>> data.extend( (21,22,23) ) # all is well
>>> print(data)
[0, 1, 2, 3, 4, 21, 22, 23]

然而

>>> data = [0,1,2,3,4]
>>> data = data + (21,22,23)
TypeError: can only concatenate list (not "tuple") to list

这两个在我看来是相同的操作,但后者失败了。我从中得到的是+=使用extendwhere 后者没有,但就是这样。

有人能解释一下这些操作之间的区别吗?更有趣的是为什么?

这似乎发生在 2.7.3 和 3.2.1 中

4

0 回答 0