标签:引用 tail div 值传递 size 可变 details print highlight
1 In[20]: a = 1 2 In[21]: b = a 3 In[22]: id(a) 4 Out[22]: 33719592L 5 In[23]: id(b) 6 Out[23]: 33719592L 7 In[24]: a = 2 8 In[25]: id(a) 9 Out[25]: 33719568L 10 In[26]: id(b) 11 Out[26]: 33719592L 12 In[27]: b = 3 13 In[28]: id(b) 14 Out[28]: 33719544L
1 In[29]: list1 = [1,2,3] 2 In[30]: list2 = list1 3 In[31]: id(list1) 4 Out[31]: 61244552L 5 In[32]: id(list2) 6 Out[32]: 61244552L 7 In[33]: list1[0] = 101 8 In[34]: id(list1) 9 Out[34]: 61244552L 10 In[35]: id(list2) 11 Out[35]: 61244552L 12 In[36]: list1 13 Out[36]: [101, 2, 3] 14 In[37]: list2 15 Out[37]: [101, 2, 3] 16 In[38]: list2[1] = 102 17 In[39]: id(list1) 18 Out[39]: 61244552L 19 In[40]: id(list2) 20 Out[40]: 61244552L 21 In[41]: list1 22 Out[41]: [101, 102, 3] 23 In[42]: list2 24 Out[42]: [101, 102, 3]
刚开始list1和list2指向同一个内存空间,改变list1中的值时,list2也跟着改变,但是它们指向的内存空间没有发生变化;同样,改变list2中的值时,list1的值也跟着变化,它们仍然指向同一个内存空间。
浅拷贝和深拷贝:
1 import copy
2 a = [1,[1, 2, 3], [4, 5, 6]]
3 b = a
4 c = copy.copy(a)
5 d = copy.deepcopy(a)
7 a.append(15)
8 a[1][2] = 10
9 a[0] = 0
11 print a
12 print b
13 print c
14 print d
16 print id(a)
17 print id(b)
18 print id(c)
19 print id(d)
标签:引用 tail div 值传递 size 可变 details print highlight
原文地址:http://www.cnblogs.com/wt869054461/p/6831114.html