如何在Python中声明一个5x5数字网格?
我该怎么声明这个呢?我在想可以这样做:
boardPieces = ["A","O","A"
"A", "A", "O"
]
5 个回答
2
[[0] * 5 for x in range(5)]
或者
[[0 for x in range(5)] for y in range(5)]
第一个只适用于不可变类型,而第二个可以用于任何类型。
4
除了已经给出的答案,如果你需要在Python中处理二维(或更高维度)的数组,一个非常好的库就是Numpy - 链接.
这个库可以让你很方便地“改变”数组的形状,随时调整成你需要的样子(比如,一个包含6个值的列表可以被看作以下几种数组形式 - 1行6列、2行3列、3行2列,等等)。
这段代码的输出是 -
import numpy
boardPieces = numpy.array( [ "A", "O", "A", "A", "A", "O" ], numpy.character )
boardPieces = boardPieces.reshape( [ 2, 3 ] )
print boardPieces
boardPieces = boardPieces.reshape( [ 3, 2 ] )
print boardPieces
结果将是 -
[['A' 'O' 'A']
['A' 'A' 'O']]
[['A' 'O']
['A' 'A']
['A' 'O']]
虽然这可能不适合你的具体需求,但可以作为其他人的参考。
5
我在想你是在说一个二维矩阵吧?像这样的代码应该可以用。
boardPieces = [["A","O","A","A", "A"],["A","O","A","A", "A"],["A","O","A","A", "A"],["A","O","A","A", "A"],["A","O","A","A", "A"]]