Python基础(列表中变量与内存关系)

Posted 我要去流浪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础(列表中变量与内存关系)相关的知识,希望对你有一定的参考价值。

在Python中,copy的是内存地址,引用的是列表的引用地址,列表里存的是各个元素的地址

例如:

name = [1,2,3,4,[\'xfxing\',\'summer\',6]]
n2 = name.copy()
name[1] = -2
name[4][0] = "shell"
name[4][2] =-6
print(name)
print(n2)
View Code

 

结果为:

name = [1,2,3,4,[\'xfxing\',\'summer\',6]]

n2 = name.copy() copy的是name中列表的内存地址
name[1] = -2 内存里开辟一个新空间给-2
name[4][0] = "shell" 列表里开辟一个新的空间存放shell,并把它给到name[4][0]
name[4][2] =-6 列表里开辟一个新的空间存放-6,并把它给到name[4][1]
print(name)
print(n2) 2不会被垃圾回收器回收,n2中copy的内存地址会继续使用

通过id()可以查看它们的内存地址


列表中的元素地址没变,列表中的内存地址也不会发生改变

(如 id(name[3] id(n2[3]))

列表中的元素地址发生改变,列表的内存地址也将改变

(如 id(name[1] id(n2[1]))

以上是关于Python基础(列表中变量与内存关系)的主要内容,如果未能解决你的问题,请参考以下文章

Python 中变量与内存的关系

变量与内存关系以及输入输出

Python基础知识—列表内存图

python基础:python的变量和常量

Python基础九函数进阶

python基础笔记