在Python中 a+=b、 a=a+b 和a.extend(b)有什么区别?
我看到一本书中介绍如果a实现了__iadd__方法 a.extend(b)
如果没有实现的话a+=b就会变得和a=a+b一样
这三者的关系是什么呢
回答:
a, b 同为 list 时,效果是一样的,
但如果b是其他类型的可迭代对象:
In [16]: a = [1, 2]In [17]: b = {3, 4}
In [18]: a + b
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-18-bd58363a63fc> in <module>
----> 1 a + b
TypeError: can only concatenate list (not "set") to list
In [19]: a += b
In [20]: a
Out[20]: [1, 2, 3, 4]
In [21]: a.extend(b)
In [22]: a
Out[22]: [1, 2, 3, 4, 3, 4]
以上是 在Python中 a+=b、 a=a+b 和a.extend(b)有什么区别? 的全部内容, 来源链接: utcz.com/a/162347.html