Skip to main content
 首页 » 编程设计

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

2025年05月04日17findumars

我最近对列表的内部工作方式感到困惑。此代码在执行一些操作后跟踪这些列表中项目“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”?

请您参考如下方法:

Python 在内部缓存小整数(最多 256 个)。

a = 1 
b = 1 
assert a is b 
 
c = 257 
d = 257 
assert c is d  # raises AssertionError