列表项在排序/复制后保持相同的内存地址

手动的

Ive最近对列表在内部的工作方式感到困惑。通过执行以下操作,此代码将跟踪这些列表中项目“ 1”的内存地址:

a = [1, 0, 2]
b = sorted(a)
c = b[:]

print id(a[0])  
print id(b[1])  # Same memory address
print id(c[1])  # Same memory address

该地址在三个列表中保持不变。所有列表如何包含相同的项目“ 1”?

在内部(CPython)列表对象存储对其包含的Python对象的引用。因此,将一个列表的内容添加到另一个列表将不会创建新对象。它只会增加参考计数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

后续函数调用的相同内存地址

来自分类Dev

Haskell:获取列表的内存地址

来自分类Dev

Golang重用内存地址从切片复制?

来自分类Dev

快速排序:打印内存地址而不是数组元素:

来自分类Dev

Python 打印嵌套列表的内存地址而不是列表内容

来自分类Dev

malloc()是否在循环中重用相同的内存地址?

来自分类Dev

Swift数组按值传递...相同的内存地址?

来自分类Dev

为什么相同值的内存地址不同

来自分类Dev

解耦具有相同内存地址的字典

来自分类Dev

数组的内存地址

来自分类Dev

比较内存地址

来自分类Dev

共享内存地址

来自分类Dev

如何在Haskell中打印列表的内存地址

来自分类Dev

将地址从指针复制到其他内存地址

来自分类Dev

如果列表中的元素指向相同的内存地址,那么两个列表如何不指向同一对象?

来自分类Dev

保存指针的内存地址

来自分类Dev

Lambda函数的内存地址

来自分类Dev

指针返回内存地址?

来自分类Dev

numpy元素的内存地址

来自分类Dev

调试无效的内存地址

来自分类Dev

PCI BAR内存地址

来自分类Dev

内存地址增加四

来自分类Dev

写入内存地址

来自分类Dev

汇编中的内存地址

来自分类Dev

查看内存地址分配

来自分类Dev

为什么指针中包含的内存地址和指针的地址相同?

来自分类Dev

数组中的相同字符串具有相同的内存地址

来自分类Dev

Python嵌套列表条目不希望与父列表共享内存地址

来自分类Dev

如何知道两个javascript变量指向相同的内存地址