How to declare an array in python
本问题已经有最佳答案,请猛点这里访问。
我希望将值分配给不同的索引,而不是按顺序分配(通过使用append),就像在哈希表中那样。如何初始化给定大小的数组?我的工作:
1 2 3 | a=[] for x in range(0,10000): a.append(0) |
有更好的方法吗?另外,C++中是否还有MeSET()函数呢?
如注释所述,初始化一个
1 | a = [0] * 10000 |
。
如果您希望等效于
1 | a[:1000] = [0] * 1000 |
可以通过多种方式初始化给定大小的列表。
python有列表理解,它从其他内联列表创建列表。因此,如果您用10000个元素(
1 | [0 for _ in range(10000)] |
号
这与您的原始解决方案非常接近。
也许更有效的方法是用一个零乘以10000:
1 | [0]*10000 |
两者都将生成一个包含10000个零的列表。
CPython有一个对"memset"的调用:
1 2 3 4 5 6 7 8 9 10 | from cpython cimport array import array cdef array.array a = array.array('i', [1, 2, 3]) # access underlying pointer: print a.data.as_ints[0] from libc.string cimport memset memset(a.data.as_voidptr, 0, len(a) * sizeof(int)) |