我正在尝试在战舰板上装船。下面代码中的函数应该使用许多船只和一个板(数组数组)作为参数。当我在终端运行时,我得到:
[[1, [...]], [1, [...]], [2, [...]]]
什么意思?如何在此输出中用0到2的随机整数替换[...]?
from random import randint
def print_board(board):
for row in board:
print " ".join(row)
def random_row(board):
return randint(0, len(board) - 1)
def random_col(board):
return randint(0, len(board[0]) - 1)
def set_the_ships(num_ships,board):
ship_list = []
for i in range(num_ships):
ship_row = random_row(board)
ship_col = random_col(board)
position = [ship_row,ship_list]
for j in range(i - 1):
while (position[0] == ship_list[j][0] and position[1] == ship_list[j][1]):
ship_row = random_row(board)
ship_col = random_col(board)
position = [ship_row,ship_list]
ship_list.append(position)
return ship_list
print set_the_ships(3,[[0,0,0],[0,0,0],[0,0,0]])
答案 0 :(得分:3)
...
表示有参考周期。
>>> l = []
>>> l.append(l)
>>> l
[[...]]
答案 1 :(得分:2)
见这一行:
position = [ship_row,ship_list]
这应该是
position = [ship_row,ship_col]
(当你在循环中重新分配position in the
时相同)
稍后,当您执行ship_list.append(position)
时,这会导致ship_list
嵌套在其中,而Python将打印为[...]
。