使用加号等于的Python列表和元组串联

时间:2013-02-05 12:57:55

标签: python list concatenation tuples

  

可能重复:
  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

这两个在我看来是相同的操作,但后者失败了。我从中得到的是+=使用extend,而后者则不然,但就是那样。

有人可以解释这些操作之间的区别,还有什么更有趣的原因?

这似乎发生在2.7.3和3.2.1

0 个答案:

没有答案