整数和列表中的赋值

时间:2016-11-05 22:08:39

标签: python-3.x

a=2
b=3
a=b
a=a+12
print(a)
print(b)

输出:

15
3

当我在列表中做这种事情时:

list1=[1,2,3,4]
list2=[4,5,6,7]
list1=list2
list1.append(12523)
print(list1)
print(list2)

输出:

[4, 5, 6, 7, 12523]
[4, 5, 6, 7, 12523]

每当我改变a的值时,b根本不会改变。但是在第二次改变list1时,list2会自动改变。我可以问为什么会发生这种情况?

1 个答案:

答案 0 :(得分:0)

这是因为使用了数据类型,首先你有a = b整数原始类型),因此a = b中会发生什么a = 3。在第二种情况下,你有一个列表(不是原始类型)list1 = list2 list1将指向list2所指向的内存中的相同位置,所以您所做的任何更改都将更改内存中list1和list2指向

的位置