如何在Python中声明零数组(或特定大小的数组)
我正在尝试制作一个计数的直方图,所以我需要创建一些“桶”。
我知道我可以通过添加一堆零来实现,比如这样:
buckets = []
for i in xrange(0,100):
buckets.append(0)
但是有没有更优雅的方法呢?我觉得应该有办法直接声明一个特定大小的数组。
我知道numpy有个叫numpy.zeros
的功能,但我想要一个更通用的解决方案。
10 个回答
29
你可以把一个 list
(列表)乘以一个整数 n
,这样就可以把这个 list
重复 n
次:
buckets = [0] * 100
151
为了完整性:在Python中,如果你想声明一个多维的零列表,你需要使用列表推导式,像这样:
buckets = [[0 for col in range(5)] for row in range(10)]
这样做是为了避免行之间共享引用。
虽然这看起来比chester1000的代码要笨重,但如果你打算稍后修改这些值,这样做是非常重要的。想了解更多细节,可以查看Python常见问题解答。
522
buckets = [0] * 100
要小心——这种方法在处理多维数组或列表的列表时并不适用。这会导致列表中的列表在子列表之间意外地反映出变化的问题。