Python中的短整型
Python会根据你电脑的系统架构自动分配整数的内存空间。不过,我现在有一个非常大的数据集,需要把它完全加载到内存中。
那么,有没有办法让Python只用2个字节来存储一些整数(就像C++里的'short'那样)呢?
6 个回答
5
你可以使用NumPy里的整数类型,比如np.int8或者np.int16。
5
感谢Armin提到的'array'模块。我还发现了一个' struct'模块,它可以把C语言风格的结构体打包成字符串:
来自文档的说明(https://docs.python.org/library/struct.html):
>>> from struct import *
>>> pack('hhl', 1, 2, 3)
'\x00\x01\x00\x02\x00\x00\x00\x03'
>>> unpack('hhl', '\x00\x01\x00\x02\x00\x00\x00\x03')
(1, 2, 3)
>>> calcsize('hhl')
8
45
不可以。不过你可以在数组里使用短整型:
from array import array
a = array("h") # h = signed short, H = unsigned short
只要这个值在数组里,它就会被当作短整型。
- 这是数组模块的文档链接