|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
>>> old = [1,2,3,4,5]
>>> new = old
>>> old.sort(reverse=1)
>>> new
[5, 4, 3, 2, 1]
>>> old
[5, 4, 3, 2, 1]
>>>
问题 1.当程序执行到排序后,为old重新排序, new的排序会跟着一起变。
但是, 如果是为old重新赋值,例如:old = [6] new的赋值不会随着一起变。
为什么会这样, 赋值就不会影响new ,但是排序就会影响new ? 求大神解惑。
[1, 2, 3, 4, 5]
>>> old = [1,2,3,4,5]
>>> new = old
>>> old = [6]
>>> new
[1, 2, 3, 4, 5]
python中变量名只是标签而已,可以多个标签指向同一块内存
new=old
意味着new和old这两个标签指向了同一块内存
所以你对new和old指向的数据进行改动,比如列表的pop,sort,reverse等操作都会对两者同时产生作用,因为他们修改了内存中的数据
而你将old重新赋值,意味着old标签指向另外一块内存,从此old和new再无瓜葛
|
|