array.array在Python中使用时遇到了一些困惑.这是代码:
import array
a = array.array('l', [1000, 2000, 3000, 4000])
for e in range(4):
print(a[e], id(a[e]))
Run Code Online (Sandbox Code Playgroud)
结果让我困惑:
1000 140505536637552
2000 140505536637488
3000 140505536637552
4000 140505536637488
Run Code Online (Sandbox Code Playgroud)
为什么a[0]ID与a[2]?我使用Python 3.7.
-----------补充--------------
正如@Mad物理学家所说,这是打印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
Run Code Online (Sandbox Code Playgroud)
我认为这是由于GC和内存管理机制.
| 归档时间: |
|
| 查看次数: |
54 次 |
| 最近记录: |