是否可以将python中的数字整数转换为1字节字符

问题描述:

我的代码中只有三个值x = {1, 2, 3},其中有一个变量x。当使用 sys.getsizeof()时,我得到的是24,它是以字节为单位的对象大小。是否可以将python中的数字整数转换为1字节字符


问题

我想知道是否有可能在Python x转换与1 byte尺寸为char。我用str(x),但是sys.getsizeof(str(x))印刷38 bytes

+2

说真的,你为什么要这么做?你是否试图在具有16K内存的20世纪80年代家用计算机上运行Python?只需使用Python为您提供的类,并停止担心这样的微观优化。 –

+0

不知道你为什么想这样做,但numpy似乎能够将整数转换为[8位格式](https://docs.scipy.org/doc/numpy/user/basics.types.html) 。尽管我使用sys.getsizeof()测试了'np.uint8',并且它返回,我猜还有其他事情发生在 – gionni

+1

上。对象不是基础值,值被装箱。但是,如果您需要与低级语言的互操作性并且要传递字节 - 没有问题:使用'array','struct'或'ctype'模块。在这种情况下,指针/参考是绝对正确的(以及大小) –

单个字节是不可能的,因为python对象总是包含Python实现的开销。

如果您的用例数量较多(数千或数百万,例如图像),则您的用例只与实际情况相关。在这种情况下,您将使用例如arraybytearray对象作为容器。另一种方法是使用numpy阵列。