查找Python字典的大小

2025 年 3 月 6 日 | 阅读 3 分钟

引言

理解 Python 中的内存利用率很大程度上取决于了解字典的大小,尤其是在处理大型数据集、API 或 JSON 对象时。可以使用 sys.getsizeof() 和 __sizeof__() 等 Python 函数以字节为单位确定字典的内存大小,这有助于改善内存管理并确保有效的数据处理。

由于它们可用于控制 JSON 对象的大小和长度,因此这些方法在通过 API 提供 JSON 数据方面可能非常有用。Web 服务器对可以通过 API 提供的 JSON 对象的大小设置了限制。

计算字典的字节大小

字典对象占用的内存量(以字节为单位)就是它的大小。本文将教我们多种方法来确定 Python 字典的大小。

使用 getsizeof() 方法查找字典的大小

Python 中的 sys 模块包含 getsizeof() 方法,该方法允许我们计算字典对象的内存大小(以字节为单位)。

输出

 
Size of animals: 232 bytes
Size of fruits: 232 bytes
Size of vehicles: 232 bytes   

说明

此代码生成三个具有不同数据类型(车辆、水果和动物)的示例字典,并使用 sys.getsizeof() 函数确定它们的字节大小。循环遍历每个字典,报告其名称和大小。字典存储在元组列表中。此方法有助于理解每个字典使用的内存量。

使用 __sizeof__() 方法获取字典大小

此外,Python 还包含一个内置的 __sizeof__() 函数,允许您计算对象的空间分配,而无需添加任何额外的垃圾值。下面的示例显示了它的实现方式。

输出

 
Size of pets: 216 bytes
Size of colors: 216 bytes
Size of countries: 216 bytes   

说明

此代码定义了三个示例字典——宠物、颜色和国家——每个字典都包含一组不同的数据类型。它通过使用 __sizeof__() 方法计算和打印每个字典以字节为单位的内存大小,来帮助理解每个字典占用的内存量。注释提供了对每个字典功能和结果的解释。

结论

getsizeof() 和 __sizeof__() 等 Python 函数允许您精确计算字典大小,并提供有关它们使用的内存量的信息。这些信息对于有效管理数据和优化代码性能非常有用,尤其是在处理大型数据集或内存受限的环境时。