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