2016-11-05 24 views
0
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的值根本不變。但在第二個時候i改變了列表1,列表2自動改變。我可以問爲什麼會發生這種情況?

+0

這是因爲'list1'和'list2'引用相同的列表,一旦你做'list1 = list2'。 –

回答

0

這是因爲所使用的數據類型的,首先你必須a = b(包括整數基本類型),因爲這樣會發生什麼a = ba = 3。在第二種情況下,你有一個列表(不是原始類型),list1 = list2 list1將指向相同的地方在內存列表2指向,所以你所做的任何改變將改變內存中的地方,這兩個列表1和list2指向