2015-11-08 53 views
0

我試圖建立一個數組,但我似乎無法正確理解:我可以獲得我想要的外觀或我想要的功能,但從來沒有。我是計算機科學的新手,現在我已經花了幾個小時的時間,請幫助我向正確的方向發送信息。無法正確顯示數組(Python3)

#tried this and could access elements, but then how do I add the appearance of the list without turning the elements into strings? 
board = [] 
for i in range(10): 
    board_row = [] 
for j in range(10): 
    board_row.append(".") 
board.append(board_row) 



#This is how I want the board to look, but I can't access elements from this board since it's not a list 
for i in range(15): 
    print(i, " ", end ="") 
print("\n") 

for j in range(12): 
    row = ((". " + "") * 10) + ((". " + " ") * 5) 
    print(row, j) 
+0

你想要做什麼? – IanAuld

+0

我需要製作一個陣列看起來像一個板,從那裏它是一個修改後的戰艦遊戲,船隻隨機放置在陣列中 – Sammy

+0

*信息*和*演示*是兩個不同的東西。你需要一個'list'(或類似的東西)來保存*信息*,並且你需要一個把它轉換成正確的* presentation *的函數。 – dlask

回答

0

我假設你想要的功能是在特定行和特定的改變元素的值column.You可以使用multidimentional陣列的功能或使用數組中的數組

board=[] 
ar_row=[] 
for i in range(15): 
    ar_row.append(str(i)+" ") 
board.append(ar_row) 

for j in range(12): 
    row = ((". " + ",") * 10) + ((". " + ",") * 5) 
    ar_row = row.split(',') 
    ar_row.append(str(j)) 
    board.append(ar_row) 


for element in board: 
    print ' '.join(element) 

上面的代碼發起板,它看起來像

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 
. . . . . . . . . . . . . . .  0 
. . . . . . . . . . . . . . .  1 
. . . . . . . . . . . . . . .  2 
. . . . . . . . . . . . . . .  3 
. . . . . . . . . . . . . . .  4 
. . . . . . . . . . . . . . .  5 
. . . . . . . . . . . . . . .  6 
. . . . . . . . . . . . . . .  7 
. . . . . . . . . . . . . . .  8 
. . . . . . . . . . . . . . .  9 
. . . . . . . . . . . . . . .  10 
. . . . . . . . . . . . . . .  11 

在該板中的每一行被保存爲在板陣列的陣列。 我想要更改第0列和第10行元素的值,只需將其更改爲 board[11][0] = your_value 但這可能會改變板在編輯元素值時的外觀。所以請嘗試使用str.format建議由史蒂芬

0

如果你想使用嵌套循環,那麼這將適用於你。我也建議使用str.format來對齊您的值。

board = [] 
for i in range(12): 
    board_row = [] 
    for j in range(15): 
     board_row.append("{:<3}".format('.')) 
    board.append(board_row) 

或者您可以使用列表理解

board = [["{:<3}".format('.') for j in range(15)] for i in range(12)] 

最後顯示網格

for i in range(15): 
    print("{:<3}".format(i), end ="") 
print("\n", end='') 

for i, x in enumerate(board): 
    print(''.join(x), i) 

#Output 
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 
. . . . . . . . . . . . . . . 0 
. . . . . . . . . . . . . . . 1 
. . . . . . . . . . . . . . . 2 
. . . . . . . . . . . . . . . 3 
. . . . . . . . . . . . . . . 4 
. . . . . . . . . . . . . . . 5 
. . . . . . . . . . . . . . . 6 
. . . . . . . . . . . . . . . 7 
. . . . . . . . . . . . . . . 8 
. . . . . . . . . . . . . . . 9 
. . . . . . . . . . . . . . . 10 
. . . . . . . . . . . . . . . 11 
+0

非常感謝!這是我正在尋找的 – Sammy