繁体   English   中英

如何在Python中声明5x5的数字网格?

[英]How can I declare a 5x5 grid of numbers in Python?

我要如何宣布呢? 我在考虑以下方面:

boardPieces = ["A","O","A"
               "A", "A", "O"
              ]

我假设一个二维矩阵? 这样的事情应该起作用。

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

除了给出的答案-如果您需要使用Python处理2D(或更高维)数组,为此目的一个很好的库是Numpy- http ://numpy.scipy.org/。

其中,它使您可以在特定时刻轻松以适合您的任何逻辑形式对数组进行“重塑”(例如,可以将6个值的列表视为以下任意数组-1x6、2x3、3x2,... )。

此代码的输出-

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

可能不适合您的特定用例,但可以作为其他参考。

[[0] * 5 for x in range(5)]

要么

[[0 for x in range(5)] for y in range(5)]

第一个仅适用于不可变类型,而第二个将适用于任何类型。

就这样吧

[["A","O","A","O","A"],[...],[...],[...],[...]]

创建一个5x5的零矩阵

ls = [[0]*5]*5
print(ls)

Output:
[[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]]

类似地,字符串类型值的矩阵

ls = [['A','O','A','A','A']]*5
print(ls)

Output: 
[['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']]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM