在Python中 a+=b、 a=a+b 和a.extend(b)有什么区别?

在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

回到顶部