对于Python列表,append()是否与+=相同?我知道+将导致创建一个新列表,而append()只是在旧列表中添加新内容。但是+=会被优化得更类似于append()吗?因为它们做同样的事情。
- 他们不会做同样的事情。+=串联,更像extend()而不是append()。
- 它们是不一样的,详细信息请参阅副本。
- +=操作符对左侧操作数执行就地操作。+操作符从两个操作数创建一个新列表,但都没有进行适当的修改。.append接受它附加到列表末尾的单个元素。因此,+=的作用类似于.extend(并且可能在底层调用相同的函数)
它是一个__iadd__操作符。文档。
重要的是,这意味着它只尝试追加。"例如,如果x是具有__iadd__()方法的类的实例,x += y等价于x = x.__iadd__(y)。否则,将同对亚纳纳的评价一样,审议亚纳纳和亚纳纳。"
这个线程专门处理列表及其iadd行为