Ducati 发表于 2017-12-12 16:21:55

python列表引用问题求助

1:>>> old=
2:>>> new=old
3:>>> new
4:
5:>>> old.reverse()
6:>>> old
7:
8:>>> new
9:
10:>>> old=
11:>>> old
12:
13:>>> new
14:


#old和new 到底是什么关系?1-9行能用reverse改变old排序,new排序跟着变,给old重新定义列表时为何new不跟着变?

BngThea 发表于 2017-12-12 16:27:34

python中变量名只是标签而已,可以多个标签指向同一块内存
new=old
意味着new和old这两个标签指向了同一块内存
所以你对new和old指向的数据进行改动,比如列表的pop,sort,reverse等操作都会对两者同时产生作用,因为他们修改了内存中的数据
而你将old重新赋值,意味着old标签指向两位一块内存,从此old和new再无瓜葛

Ducati 发表于 2017-12-12 16:46:38

谢谢
页: [1]
查看完整版本: python列表引用问题求助