我是Python的新手,我在存储信息时遇到了问题。我的导师'而且我不知道该怎么做。 我有数字0和1的数组,例如
a=[1,1,1,0]
我知道这个整数,但是他告诉我应该保留它。 我试图将我的变量转换为数字,例如:
a = 14
然后ab = bin(14).
但是,当我使用sys.getsizeof()
时,ab大于a。
我试图使用bytearray()
,但我也不了解它。
我以为我知道计算机是如何工作的,但这让我很困惑。
我该如何保留位?我该怎么用?我应该阅读什么来理解它?以及如何衡量我的变量有多大(sys.getsizeof()
可以吗?或者我应该将它写入二进制文件?)。
我们这样做是为了优化内存。
答案 0 :(得分:2)
我不确定我是否理解目标,但这是一个猜测:
def convert(bits):
val = 0
for bit in bits:
val = (val << 1) | bit
return val
a = [1, 1, 1, 0]
ab = convert(a)
print(ab, bin(ab)) # -> 14 0b1110
存储在ab
中的结果是一个Python整数,它具有不同的长度,具体取决于保存数字所需的位数。上面的代码将处理任意数量的位(但你可以限制它)。