这两种将元组附加到列表的方法有什么区别

时间:2018-04-24 10:16:14

标签: python

我有以下代码打破:

l = []
tup = ('a', 'b')
l = l + tup

,它给出了以下错误

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate list (not "tuple") to list

但下面的代码运行

l = []
tup = ('a','b')
l += tup

没有任何错误。

我一直认为l + =与l = l +

相同

这里发生了什么事?

1 个答案:

答案 0 :(得分:1)

问题是l = l +正在调用list __add__方法,而l +=正在调用__iadd__方法,这是地方(相当于调用extend方法)。