小编fre*_*m35的帖子

python如何处理列表的解包、重定义和引用?

我是 python 新手,我试图了解它如何处理列表解包方面的副本与引用。我有一个简单的代码片段,正在寻找关于它为何如此运行的解释。

arr = [1, 2, 3, 4]
[one, two, three, four] = arr
print(id(arr[0]), arr[0])
print(id(one), one)
one = 5
print(id(one), one)
Run Code Online (Sandbox Code Playgroud)

输出是:

(16274840, 1)
(16274840, 1)
(16274744, 5)
Run Code Online (Sandbox Code Playgroud)

我不确定为什么one当我尝试修改其内容时突然移动到不同的内存位置。

我正在使用 python 版本 2.7.18。

这是我的第一篇文章,所以如果我不遵守准则,我提前道歉。如果我违反了这些规定,请告诉我。

感谢您的所有回复。他们帮助我简化了对这段代码的误解:

var = 1
print(id(var), var)
var = 5
print(id(var), var)
Run Code Online (Sandbox Code Playgroud)

带输出:

(38073752, 1)
(38073656, 5)
Run Code Online (Sandbox Code Playgroud)

询问列表并解压它们完全是令人困惑的。

这很好地解释了: http://web.stanford.edu/class/archive/cs/cs106a/cs106a.1212/handouts/mutation.html

python list destructuring

5
推荐指数
2
解决办法
103
查看次数

标签 统计

destructuring ×1

list ×1

python ×1