我想下象棋,但我混淆了一个问题。如何链接我的棋盘和棋子?由于棋盘可带有关于它的一部分,如何链接坐标与件?
chessboard = [(x, y) for x in range(8) for y in range(8)]
走卒:
pawns = []
for pawnY in range(8):
pawn = (pawnY, 1)
pawns.append(pawn)
下一个我试图取代坐标。我只是不知道什么是下面的代码之间的区别,这给我SyntaxError: invalid syntax
[chessboard[chessboard.index(e)] = '♟' for i, e in enumerate(pawns) if e in chessboard]
而这一点,但这个工程:
for i, e in enumerate(pawns):
if e in chessboard:
chessboard[chessboard.index(e)] = '♟'
输出:
print(chessboard)
[(0, 0), (1, 0), (2, 0), (3, 0), (4, 0), (5, 0), (6, 0), (7, 0), '♟', '♟', '♟', '♟', '♟', '♟', '♟', '♟', (0, 2), (1, 2), (2, 2), (3, 2), (4, 2), (5, 2), (6, 2), (7, 2), (0, 3), (1, 3), (2, 3), (3, 3), (4, 3), (5, 3), (6, 3), (7, 3), (0, 4), (1, 4), (2, 4), (3, 4), (4, 4), (5, 4), (6, 4), (7, 4), (0, 5), (1, 5), (2, 5), (3, 5), (4, 5), (5, 5), (6, 5), (7, 5), (0, 6), (1, 6), (2, 6), (3, 6), (4, 6), (5, 6), (6, 6), (7, 6), (0, 7), (1, 7), (2, 7), (3, 7), (4, 7), (5, 7), (6, 7), (7, 7)]
那么,是什么我应该怎么做连接坐标和片断,而不是操作它们?你能给我一些建议吗?
您正在获取SyntaxError,因为您无法在列表理解中使用赋值语句。当你想将两部分数据“链接”在一起时,请尝试使用字典。 (有点含糊,我知道,这就是为什么这是一个评论,而不是一个答案) – Kevin
列表解析用于制作新的列表。正如您正在尝试的那样,它们不能用于将值分配给现有列表。虽然你的第二个工作例子可能看起来与第一个类似,但事实上,它们完全不同。 – sizzzzlerz