如何在python中声明数组

如何在python中声明数组,python,arrays,python-3.x,Python,Arrays,Python 3.x,我希望将值分配给不同的索引,而不是像在哈希表中那样以顺序方式(通过使用append)分配。如何初始化给定大小的数组? 我所做的: a=[] for x in range(0,10000): a.append(0) 有更好的办法吗? 另外,C++中是否存在MeSET()的函数?< P>:从“:”/P>调用“”。 可以通过多种方式初始化给定大小的列表 Python有列表理解,它从其他内联列表创建列表。因此,如果您创建一个包含10000个元素的列表(range(10000)),您可以很

我希望将值分配给不同的索引,而不是像在哈希表中那样以顺序方式(通过使用append)分配。如何初始化给定大小的数组? 我所做的:

a=[]
for x in range(0,10000):
       a.append(0)
有更好的办法吗? 另外,C++中是否存在MeSET()的函数?

< P>:从“:”/P>调用“”。
可以通过多种方式初始化给定大小的列表

Python有列表理解,它从其他内联列表创建列表。因此,如果您创建一个包含10000个元素的列表(
range(10000)
),您可以很容易地从中创建一个包含10000个零的列表:

[0 for _ in range(10000)]
这与您最初的解决方案非常接近

可能更有效的方法是将一个列表乘以10000:

[0]*10000

两者都将产生一个包含10000个零的列表。

如注释中所述,将一个
列表
(不是数组,这不是Python中的类型,尽管有一个
数组
模块用于更专门的用途)初始化为一组零只是:

a = [0] * 10000
如果您想要一个等效于
memset
的元素,例如,您想要将现有
列表的前1000个元素归零,您可以使用slice赋值:

a[:1000] = [0] * 1000

你可以做
a=[0]*10000
这个怎么样<代码>a=[0代表范围内的i(10000)]
这是一个列表。要做到这一点,可以说
a=[0]*10000
我认为这是的副本。您确定要数组吗?字典(也称为散列)更适合您的用途。没有迹象表明OP实际上想要在这里初始化C数组。并且绝对没有表示使用Cython的愿望(这与CPython不一样,CPython指的是C中实现的引用解释器)。在帖子中,你可以读到“还有,C++中有什么功能,比如MeMSET(?)),OP选择用来解决问题的是他的决定。在我看来,仅仅因为不符合你的解决方案想法就否决一个答案有点狭隘。但我会听从更明智的意见。如果我看到我的帖子没有为OP提供有用的信息,我会删除它。即使OP没有发现有用的答案,其他人也可能会阅读这个问题。如果这是一个合理的答案,并提供了一个新的角度对这个问题,它是免费保留,没有必要删除它。看见
a[:1000] = [0] * 1000