在Python中使用array.array
时,我感到有些困惑。这是代码:
import array
a = array.array('l', [1000, 2000, 3000, 4000])
for e in range(4):
print(a[e], id(a[e]))
结果使我困惑:
1000 140505536637552
2000 140505536637488
3000 140505536637552
4000 140505536637488
为什么a[0]
与a[2]
具有相同的ID?我使用的是Python 3.7。
-----------补充--------------
正如@Mad Physicist所建议的,这是两次打印id(a[e])
的结果:
for e in range(4):
print(a[e], id(a[e]), id(a[e]))
1000 139949448301712 139949448301712
2000 139949448299920 139949448299920
3000 139949448301136 139949448301136
4000 139949448301712 139949448301712
我认为这是由于GC和内存管理机制所致。