首页 > 解决方案 > 从列表中减去 64 或 36 后,需要将列表 sys.getsizeof() 除以 8 或 4(取决于机器)

问题描述

我正在尝试通过函数查找列表的容量。但是一个步骤涉及将列表大小减去 64(在我的机器中),并且它必须除以 8 才能获得容量。这个容量值是什么意思?

我尝试阅读 python 的文档以了解 sys.getsizeof() 方法,但它仍然无法回答我的疑问。

import sys
def disp(l1):
    print("Capacity",(sys.getsizeof(l1)-64)//8)    // What does this line mean especially //8 part 

    print("Length",len(l1))

mariya_list=[]
mariya_list.append("Sugarisverysweetand it can be used for cooking sweets 
and also used in beverages ")
mariya_list.append("Choco")
mariya_list.append("bike")

disp(mariya_list)
print(mariya_list)
mariya_list.append("lemon")
print(mariya_list)
disp(mariya_list)
mariya_list.insert(1,"leomon Tea")
print(mariya_list)
disp(mariya_list)

输出:容量 4 长度 1 ['Choco'] ['Choco', 'lemon'] 容量 4 长度 2 ['Choco', 'leomon Tea', 'lemon'] 容量 4 长度 3

这是输出。在这里我无法理解容量 4 是什么意思。为什么即使在随后添加元素之后它仍重复相同的值 4。

标签: python-3.x

解决方案


推荐阅读