list.__iadd__ 和list.__add__ 的不同行為
在Python 中,列表物件提供了兩種列表連結方法: iadd 和__add__。儘管目的相似,但這些方法在行為上表現出顯著差異。
iadd 是就地列表串聯運算子。當與 = 運算子一起使用時,它會就地修改現有清單。例如:
x = [1, 2, 3, 4] x += [4] print(x) # Output: [1, 2, 3, 4, 4]
在本例中,對x = [4] 的調用使用iadd 將元素4 追加到列表x 中,從而得到修改後的列表[1, 2, 3, 4, 4].
另一方面,add 是清單新增運算子。當與運算符一起使用時,它會傳回一個新列表而不是修改原始列表。例如:
x = [1, 2, 3, 4] x = x + [4] print(x) # Output: [1, 2, 3, 4, 4] print(y) # Output: [1, 2, 3, 4]
在本例中,對 x = x [4] 的呼叫使用 add 建立一個組合 x 和 [4] 元素的新清單。原始列表 x 保持不變。
這種行為差異是由於 Python 中的不變性概念造成的。列表是可變對象,這意味著可以對它們進行就地修改。 iadd 利用這種可變性來直接修改列表,而 add 建立一個新列表以保留原始列表的不變性。
以上是Python 中 `list.__iadd__` 和 `list.__add__` 之間的主要差異是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!