在python中,“list”的内存分配如何工作?为什么列表的大小不等于其对象的总和?

2021-01-03 15点热度 1人点赞 0条评论
我有下面的程序来打印 id 和列表的大小以及它的元素。

import sys

a=[1,2,3]

print(id(a))
print(id(a[0]))
print(id(a[1]))
print(id(a[2]))

print("=================")

print(sys.getsizeof(a))
print(sys.getsizeof(a[0]))
print(sys.getsizeof(a[1]))
print(sys.getsizeof(a[2]))

打印内容:

139954746492104
10914496
10914528
10914560
=================
88
28
28
28
几个问题
以下内容:
  • [0]的大小是28。当我乘以28*3=84时,列表A的大小是88?
  • 当我减去一个[1]-a[0]的地址,即10914528-10914496=32时,当我使用函数大小时,我是如何得到28的?
  • ida 是139954746492104。那么 ida[0] 是怎样的呢?
查看隐藏内容需要支付:¥1
查看

未经允许不得转载!在python中,“list”的内存分配如何工作?为什么列表的大小不等于其对象的总和?

本文地址:https://ans.52learn.online/1880

ANS52LEARN

DO BEST