在c++中,我可以这样写:
int someArray[8][8];
for (int i=0; i < 7; i++)
for (int j=0; j < 7; j++)
someArray[i][j] = 0;如何在python中初始化多行数组?我试过了:
array = [[],[]]
for i in xrange(8):
for j in xrange(8):
array[i][j] = 0发布于 2010-04-13 22:20:08
>>> [[0]*8 for x in xrange(8)]
[[0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0]]
>>>发布于 2010-04-13 23:04:42
您询问了有关初始化列表列表的问题。这是一种非常有用的数据结构,但它与C++中的2D数组有一个重要的区别:不能保证所有行的长度都相同(即len(a[0])==len(a[1]) )(而在C++中确实有这样的保证)。
因此,另一个可能方便的解决方案是使用NumPy的array数据类型,如下所示:
import numpy as np
array = np.zeros((8,8))发布于 2010-04-13 22:19:11
以下是一种更短的方法:
array = []
for i in xrange(8):
array.append( [0] * 8 )https://stackoverflow.com/questions/2630211
复制相似问题