我在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中声明二维数组吗?
答案 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
的元素,该元素尚不存在。