python的链分配与顺序无关

时间:2019-03-27 15:22:29

标签: python

我开始学习python,但发现一些烦人的问题

In [82]: a = b = 8                                                                                                            
In [83]: id(b)                                                                                                                
Out[83]: 94772909397088
In [84]: id(a)                                                                                                                
Out[84]: 94772909397088
In [86]: id(8)                                                                                                                
Out[86]: 94772909397088

结果是违反直觉的

b指向8和指向b,b持有8的地址,持有b的地址。但它们返回相同的结果。

此外,如果更改b

In [88]: b = 9                                                                                                                
In [89]: a                                                                                                                    
Out[89]: 8

b更改为9,但a不变。

所以'a = b = c = 9'或'c = b = a = 9'没什么

如何直观地将大脑包裹起来?

1 个答案:

答案 0 :(得分:-2)

如果要更改图形,可以使用功能副本。

import copy
aList=[[1,2],3,4]
bList=copy.copy(aList)
print aList
print bList

print id(aList)
print id(bList)

aList[0][0]=5

print aList
print bList