【发布时间】:2021-12-28 08:48:56
【问题描述】:
在 Python3 中,Int 类型默认为 int32 或 int64。
声明变量时如何指定int8/int16?
在 Python 中是不可能的?
如果 int 对象很小,无法指定 int8/int16,则很浪费内存。
【问题讨论】:
-
原生 Python 整数可以是任意大小(受可用内存量的限制)——所以简短的回答是“你不能”。
标签: python
在 Python3 中,Int 类型默认为 int32 或 int64。
声明变量时如何指定int8/int16?
在 Python 中是不可能的?
如果 int 对象很小,无法指定 int8/int16,则很浪费内存。
【问题讨论】:
标签: python
Afaik python根据数字的大小选择类型,没有办法指定你想让python使用哪种类型的int。如果你担心内存的浪费,python可能一开始就不是正确的选择。
【讨论】:
Python 没有对 8 位或 16 位整数的任何内置支持。另一方面,NumPy 确实支持您正在寻找的大小:
import numpy as np
print(np.uint8(22))
【讨论】:
np.uint8 值的实例实际上大于int 值,因此这对节省内存没有用处。
int8,不是吗?
int 将是 24 个字节,而 np.uint8 是 25 个字节。 (虽然这是 0,但一个 int 实际上会以一个小的非零值上升到 28 个字节)。 Numpy 当然也有数组,每增加一个新的np.uint8 值只需要一个额外的字节,但基数更大。