【发布时间】:2017-08-02 23:23:33
【问题描述】:
当我调用sys.getsizeof(4) 时,它返回14。假设这与 C 中的 sizeof() 相同,那么这个值高得无法接受。
我想像使用一个大的原始字节数组一样使用内存数组。由于相关项目中数组的大小,内存开销是最重要的。可移植性也是一个大问题,因此使用 C 或使用更奇特的库并不是最佳选择。
有没有办法强制 Python 只使用标准 Python 3 为单个正符号字节列表或元组成员使用更少的内存?
【问题讨论】:
-
如果您能够使用库,
numpy提供优化的数组以及用于操作它们的高效函数。您可以使用数组的 dtype 参数指定元素的内存大小。 -
尝试使用带有合适 typecode 的
array.array()。 -
跟进 Marineau 的评论:
arraymodule 的文档,是标准库的一部分。 -
太棒了,array.array() 正是我想要的,谢谢 martineau 和 Kevin!如果可能的话,我试图避免使用 numpy,numpy 很棒,只是不能 110% 确定它在这种情况下会起作用。
标签: python python-3.x memory integer byte