yixiaoyang1 发表于 2020-4-10 08:57:55

reverse求助

q = w = list('qwer')
q.reverse()
q == w
true

请问这里q和w是用的一个表吗?不是分别给q和w开辟一个空间吗

sunrise085 发表于 2020-4-10 09:08:58

用“=”进行list赋值实际上是贴标签。两者是同一个id,你可看看id(q) 和id(w)
python细节之2、变量名与标签 变量的赋值与修改

BngThea 发表于 2020-4-10 09:11:19

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

coolsummer2080 发表于 2020-4-10 10:36:58

Python采用的是基于值的内存管理方式,同一个值对不同变量进行赋值,这些变量都指向同一个实体。
>>> q = w = list('qwer')
>>> q
['q', 'w', 'e', 'r']
>>> w
['q', 'w', 'e', 'r']
>>> id(q)
36961928
>>> id(w)
36961928
>>> q.reverse()
>>> q
['r', 'e', 'w', 'q']
>>> w
['r', 'e', 'w', 'q']
如果我的回答正确,{:5_109:}给个最佳答案呗!{:5_101:}

zltzlt 发表于 2020-4-10 12:28:28

q 和 w 是指向同一个列表的,q 变了 w 也会跟着变。
页: [1]
查看完整版本: reverse求助