python中的二进制数组

5 python

如何在python中创建大数组,如何有效地创建它

在C/C++中:

byte *data = (byte*)memalloc(10000);
Run Code Online (Sandbox Code Playgroud)

要么

byte *data = new byte[10000];
Run Code Online (Sandbox Code Playgroud)

在python ...?

小智 7

看一下阵列模块:

import array
array.array('B', [0] * 10000)
Run Code Online (Sandbox Code Playgroud)

您可以传递一个更高内存效率的生成器,而不是传递一个列表来初始化它.


Bri*_*ian 6

您可以预先分配一个列表:

l = [0] * 10000
Run Code Online (Sandbox Code Playgroud)

这将比稍微快一点(因为它避免了中间重新分配).但是,这通常会为整数对象的指针列表分配空间,这将大于C中的字节数组.

如果需要内存效率,可以使用数组对象.即:

import array, itertools
a = array.array('b', itertools.repeat(0, 10000))
Run Code Online (Sandbox Code Playgroud)

请注意,在实践中使用这些可能会稍微慢一些,因为访问元素时会出现取消装箱过程(必须先将它们转换为python int对象).


uzi*_*uzi 0

通常使用 python,您只需创建一个列表

mylist = []
Run Code Online (Sandbox Code Playgroud)

并将其用作数组。或者,我认为您可能正在寻找数组模块。请参阅http://docs.python.org/library/array.html