2010-01-28 72 views
1

我该如何申报?我沿线的思考的东西:如何在Python中声明一个5x5的数字网格?

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

你说你要申报数的网格。但在你的例子中,它看起来像你想要一个字符串的网格。你能澄清吗? – Ponkadoodle 2010-01-28 04:50:39

+0

为什么你使用“申报”一词? Python没有“声明”。 “声明”是什么意思?你的意思是“创造”还是“分配”? – 2010-01-28 14:05:40

回答

5

我假设一个2d矩阵?像这样的东西应该工作。

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"]] 
2
[[0] * 5 for x in range(5)] 

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

第一只用一成不变的工种,而第二个可以与任何类型的工作。

+0

不明白为什么这是downvoted。 – bernie 2010-01-28 04:46:02

+0

我没有投票表决。但我认为这是因为第一个例子不起作用而被低估了。它创建一个数组,如:[[0],[0],[0],...] – Ponkadoodle 2010-01-28 04:53:56

+0

啊,是的,现在修复。 – 2010-01-28 04:55:42

0

就这样做。

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

除了给出的答案 - 在Python中,一个非常好的库,用于此目的,如果你需要做的二维(或更高维度)的工作阵列是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

创建零

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

的5x5矩阵类似的字符串类型的矩阵值

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