为了节省内存,我想为每个 int 使用更少的字节 (4),而不是 24。
我查看了结构,但我不太明白如何使用它们。 https://docs.python.org/3/library/struct.html
当我执行以下操作时:
myInt = struct.pack('I', anInt)
sys.getsizeof(myInt)
没有像我预期的那样返回 4。
我是不是做错了什么? Python 是否有另一种方法来为每个变量节省内存?
添加:我的数组中有 750,000,000 个整数,我希望能够使用给定的索引。
最佳答案
如果要在数组中保存多个整数,请使用 numpy ndarray。 Numpy 是一个非常流行的第三方软件包,它比单独的 Python 更紧凑地处理数组。 Numpy 不在标准库中,因此它的更新频率可能比 Python 本身的更新更频繁——它被认为被添加到标准库中。 Numpy 是 Python 在数据科学和其他科学用途中如此受欢迎的原因之一。
Numpy 的 np.int32 类型使用四个字节表示一个整数。声明你的数组全是零
import numpy as np
myarray = np.zeros((750000000,), dtype=np.int32)
或者,如果您只想要数组并且不想花任何时间初始化值,
myarray = np.empty((750000000,), dtype=np.int32)
然后您可以根据需要填充并使用该数组。完整数组会产生一些 Python 开销,因此数组的大小将略大于 4 * 750000000
,但大小会很接近。
关于python - 如何让我的 Python 程序使用 4 个字节而不是 24 个字节来表示 int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56762238/