Python - 多行数组

时间:2010-04-13 14:16:32

标签: python arrays

在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

5 个答案:

答案 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 ++中你确实有这个保证)

另一个可能很方便的解决方案是使用NumPyarray数据类型,如下所示:

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)]