簡體   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