我最近遇到了bytearray在python中调用的dataType .有人可以提供需要字节数组的场景吗?
我很想知道Bytearray和Python中的列表之间的内存管理有何不同.
我发现了一些问题,比如bytearray和list之间的差异,但没有完全回答我的问题.
我的问题正是......
from array import array
>>> x = array("B", (1,2,3,4))
>>> x.__sizeof__()
36
>>> y = bytearray((1,2,3,4))
>>> y.__sizeof__()
32
>>> z = [1,2,3,4]
>>> z.__sizeof__()
36
Run Code Online (Sandbox Code Playgroud)
正如我们所看到的,list/array.array(4个元素为36个字节)和一个字节数组(4个元素为32个字节)之间的大小存在差异.有人可以向我解释为什么会这样吗?字节数组占用元素32的内存字节是有意义的,但是如何解释list和array.array呢?4( 4 * 8 == 32 )
# Lets take the case of bytearray ( which makes more sense to me at least :p)
for i in y:
print(i, ": ", id(i))
1 : 499962320
2 : 499962336 #diff is 16 units
3 : 499962352 …Run Code Online (Sandbox Code Playgroud)