我想将值分配给不同的索引,而不是像我们在哈希表中那样以顺序方式(通过使用附加)分配值。如何初始化给定大小的数组?我所做的:
a=[]
for x in range(0,10000):
a.append(0)
有没有更好的办法?另外,c++中有没有像memset()这样的函数?
原文由 Sarthak Agarwal 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想将值分配给不同的索引,而不是像我们在哈希表中那样以顺序方式(通过使用附加)分配值。如何初始化给定大小的数组?我所做的:
a=[]
for x in range(0,10000):
a.append(0)
有没有更好的办法?另外,c++中有没有像memset()这样的函数?
原文由 Sarthak Agarwal 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以通过多种方式初始化给定大小的列表。
Python 具有 列表推导 式,它可以从其他列表内联创建列表。因此,如果您创建一个包含 10000 个元素的列表 ( range(10000)
),您可以轻松地从中创建一个包含 10000 个零的列表:
[0 for _ in range(10000)]
这非常接近您的原始解决方案。
可能更有效的方法是将带有单个零的列表乘以 10000:
[0]*10000
两者都会产生一个包含 10000 个零的列表。
原文由 Luke Taylor 发布,翻译遵循 CC BY-SA 3.0 许可协议
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
如评论中所述,将
list
(不是数组,这不是 Python 中的类型,尽管有一个array
模块用于更专业的用途)初始化为一堆零是只是:如果你想要一个等价于
memset
的这个目的,比如说,你想要将现有list
的前 1000 个元素归零,你将使用切片赋值: