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)
您可以传递一个更高内存效率的生成器,而不是传递一个列表来初始化它.
您可以预先分配一个列表:
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对象).
通常使用 python,您只需创建一个列表
mylist = []
Run Code Online (Sandbox Code Playgroud)
并将其用作数组。或者,我认为您可能正在寻找数组模块。请参阅http://docs.python.org/library/array.html。