📜  Python | a += b并不总是a = a + b

📅  最后修改于: 2020-01-17 12:37:46             🧑  作者: Mango

在Python中,a += b的行为并不总是与a = a + b相同,相同的操作数在不同条件下可能给出不同的结果。
考虑以下用于列表操作的示例
示例1

list1 = [5, 4, 3, 2, 1]
list2 = list1
list1 += [1, 2, 3, 4]
print(list1)
print(list2)

输出:

[5、4、3、2、1、1、1、2、3、4]
[5、4、3、2、1、1、1、2、3、4]

例子2

list1 = [5, 4, 3, 2, 1]
list2 = list1
list1 = list1 + [1, 2, 3, 4]
# list1上面程序中一致,list2不同.
print(list1)
print(list2)

输出:

[5、4、3、2、1、1、1、2、3、4]
[5,4,3,2,1]
  • expression list1 + = [1、2、3、4]就地修改列表,表示它扩展了列表,使得“ list1″和“ list2″仍具有对各自原始列表的引用。
  • 表达式list1 = list1 + [1、2、3、4]创建一个新列表,并将“ list1″引用更改为该新列表,而“ list2″仍引用旧列表。