我想将值分配给不同的索引而不是按顺序方式(通过使用append),就像我们在哈希表中所做的那样。如何初始化给定大小的数组? 我做了什么:
a=[]
for x in range(0,10000):
a.append(0)
有更好的方法吗? 另外,在c ++中是否有像memset()这样的函数?
答案 0 :(得分:6)
正如评论中所提到的,初始化list
(不是数组,不是Python中的类型,尽管有一个array
模块用于更专业的用途)到一堆零只是:
a = [0] * 10000
如果您希望为此目的使用等效memset
,例如,您想要将现有list
的前1000个元素归零,则需要使用切片分配:
a[:1000] = [0] * 1000
答案 1 :(得分:3)
您可以通过多种方式初始化给定大小的列表。
Python具有列表推导,可以从内联其他列表创建列表。因此,如果您创建一个包含10000个元素([0 for _ in range(10000)]
)的列表,您可以轻松地从中创建一个包含10000个零的列表:
[0]*10000
这与原始解决方案非常接近。
可能更有效的方法是将列表与单个零乘以10000:
{{1}}
两者都会产生一个包含10000个零的列表。
答案 2 :(得分:1)