gpt4 book ai didi

python - 为什么single int是24字节,在list中却趋向于8字节

转载 作者:太空狗 更新时间:2023-10-30 00:25:04 24 4
gpt4 key购买 nike

这是我正在查看的内容:

In [1]: import sys

In [2]: sys.getsizeof(45)
Out[2]: 24

In [3]: sys.getsizeof([])
Out[3]: 72

In [4]: sys.getsizeof(range(1000))
Out[4]: 8072

我知道 Python 中的 int 是可增长的(可以增大到 24 字节)对象,它们存在于堆中,我明白为什么该对象可以很大,但不是列表只是这些对象的集合?显然不是,这是怎么回事?

最佳答案

这是对象的大小 - excluding the objects it contains :

>>> d = range(10)
>>> sys.getsizeof(d)
152
>>> d[0] = 'text'
>>> sys.getsizeof(d)
152
>>> d
['text', 1, 2, 3, 4, 5, 6, 7, 8, 9]

在您的例子中,包含 1000 个元素的列表的大小是 8072 字节,但每个整数对象仍然是 24 字节。列表对象跟踪这些整数对象,但它们不包含在列表对象的大小中。

关于python - 为什么single int是24字节,在list中却趋向于8字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30946955/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com