加入str和int时加入iterable错误

时间:2017-04-28 18:19:36

标签: python join iterable

我正在尝试编写一个战舰游戏,第一行中的数字为1-10,字母为#34; o"在另一个10.不幸的是,我无法加入数字,因为错误"只能加入一个可迭代的"一直在闪烁。

你能告诉我如何解决它吗?

board = list(range(10))

for x in range(10):
    board.append(["O"] * 10)

def print_board(board):
    for row in board:
        print (" ".join(row))

print_board(board)

1 个答案:

答案 0 :(得分:0)

你的根本问题是你的第一行不是列表列表,因此当你追加它时,你没有得到你的想法。

但是你有点不清楚你在追求什么。你想要整个矩阵中的字符串,还是顶行中的整数?

所有字符串:

board = [[str(n) for n in range(1, 11)]] + [list('0'*10)] * 10

def print_board(board):
    for row in board:
        print (" ".join(row))

print_board(board)

排在第一行的整数:

board = [range(1, 11)] + [list('0' * 10)] * 10

def print_board(board):
    for row in board:
        print (" ".join(str(x) for x in row))

print_board(board)

<强>结果:

1 2 3 4 5 6 7 8 9 10
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 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
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 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