我希望为不同的索引赋值,而不是像在哈希表中那样以顺序的方式(通过使用append)赋值。如何初始化给定大小的数组?我的工作是:
a=[]
for x in range(0,10000):
a.append(0)有没有更好的方法?另外,在c++中有像memset()这样的函数吗?
发布于 2016-03-20 21:14:09
正如注释中所指出的,将list (不是数组,这不是Python语言中的类型,尽管有一个array模块用于更特殊的用途)初始化为一堆零:
a = [0] * 10000如果你想要一个等同于memset的东西,比如说,你想将现有list的前1000个元素清零,你可以使用切片赋值:
a[:1000] = [0] * 1000发布于 2016-03-20 21:12:57
您可以通过多种方式初始化给定大小的列表。
Python具有列表理解,它可以从其他列表内联地创建列表。因此,如果您创建了一个包含10000个元素的列表(range(10000)),则可以很容易地创建一个包含10000个零的列表:
[0 for _ in range(10000)]这与您的原始解决方案非常接近。
也许更有效的方法是将列表中的单个0乘以10000:
[0]*10000两者都将生成一个包含10000个零的列表。
https://stackoverflow.com/questions/36113747
复制相似问题