在python中声明和初始化2d数组

时间:2014-01-18 07:20:53

标签: python arrays

我在python中声明了多维数组

Nbrs[23][2] = [[1, 1], [1, 2], [2, 1], 
               [2, 3], [3, 2], [1, 3], 
               [3, 1], [1, 4], [3, 4], 
               [4, 3], [4, 1], [1, 5], 
               [2, 5], [3, 5], [4, 5], 
               [5, 4], [5, 3], [5, 2], 
               [5, 1], [1, 6], [5, 6], 
               [6, 5], [6, 1]
           ]

它给了我错误:

NameError: name 'Nbrs' is not defined

我不能用这种方式在python中声明二维数组吗?

3 个答案:

答案 0 :(得分:1)

在python中定义列表时,不需要指定维度。当您键入Nbrs[23][2]时,python正在尝试查找[23][2]Nbrs处的内容,但在这种情况下,Nbrs不存在,因为您是第一次尝试定义它这里。

而是这样做:

Nbrs = [[1, 1], [1, 2], [2, 1], ....

答案 1 :(得分:1)

作业声明:

Nbrs[23][2] = [[1, 1], [1, 2], [2
#    ^  ^ you can't index   Nbrs before it created 

应该是:

Nbrs = [[1, 1], [1, 2], [2
# now after this statement, Nbrs a list of list you can access 
# its elements useng `Nbrs[i][j]`  for i < len(Nbrs) and j < 2 

我认为你因为C,C ++声明而感到困惑!

答案 2 :(得分:1)

这不是正确的语法。您不需要在左侧包含有关变量类型的任何内容;特别是,放下尺寸。

Nbrs = [[1, 1], [1, 2], [2, 1], [2, 3], [3, 2], [1, 3], [3, 1], [1, 4], [3, 4], [4, 3], [4, 1], [1, 5], [2, 5], [3, 5], [4, 5], [5, 4], [5, 3], [5, 2], [5, 1], [1, 6], [5, 6], [6, 5], [6, 1]]

您所撰写的内容试图分配给Nbrs的元素,该元素尚不存在。