在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
答案 0 :(得分:7)
>>> [[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]]
>>>
答案 1 :(得分:7)
您询问了有关初始化列表的信息。它是一个非常有用的数据结构,但它与C ++中的2D数组有重要区别:不能保证所有行都具有相同的长度(即len(a[0])==len(a[1])
(在C ++中你确实有这个保证)
另一个可能很方便的解决方案是使用NumPy的array数据类型,如下所示:
import numpy as np
array = np.zeros((8,8))
答案 2 :(得分:3)
这是一个更短的方式:
array = []
for i in xrange(8):
array.append( [0] * 8 )
答案 3 :(得分:3)
array = [[0]*8 for i in xrange(8)]
答案 4 :(得分:2)
[[0]*8 for x in range(8)]