如何在python中声明一个数组

新手上路,请多包涵

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

 a=[]
for x in range(0,10000):
       a.append(0)

有没有更好的办法?另外,c++中有没有像memset()这样的函数?

原文由 Sarthak Agarwal 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 712
2 个回答

如评论中所述,将 list (不是数组,这不是 Python 中的类型,尽管有一个 array 模块用于更专业的用途)初始化为一堆零是只是:

 a = [0] * 10000

如果你想要一个等价于 memset 的这个目的,比如说,你想要将现有 list 的前 1000 个元素归零,你将使用切片赋值:

 a[:1000] = [0] * 1000

原文由 ShadowRanger 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以通过多种方式初始化给定大小的列表。

Python 具有 列表推导 式,它可以从其他列表内联创建列表。因此,如果您创建一个包含 10000 个元素的列表 ( range(10000) ),您可以轻松地从中创建一个包含 10000 个零的列表:

 [0 for _ in range(10000)]

这非常接近您的原始解决方案。

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

 [0]*10000

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

原文由 Luke Taylor 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题