如何基于另一个带有坐标的列表覆盖列表位置-Python 3.6
我有一张清单(棋盘): 我有一个带坐标的列表:如何基于另一个带有坐标的列表覆盖列表位置-Python 3.6,python,python-3.6,Python,Python 3.6,我有一张清单(棋盘): 我有一个带坐标的列表: y = [(1, 2), (1, 4), (5, 2), (5, 4), (2, 1), (2, 5), (4, 1), (4, 5)] 例如,如果我们选择(5,2),那么我需要将列表x第5列第2行的内容替换为“*”。我有点不知所措,也许我应该使用数组而不是xlist。就像我说的-我不知道。任何帮助都将不胜感激。多谢各位 chessBoard = [["|_"] * 8 for i in range(8)] moves = [(1, 2), (1
y = [(1, 2), (1, 4), (5, 2), (5, 4), (2, 1), (2, 5), (4, 1), (4, 5)]
例如,如果我们选择(5,2)
,那么我需要将列表x
第5列第2行的内容替换为“*”
。我有点不知所措,也许我应该使用数组而不是x
list。就像我说的-我不知道。任何帮助都将不胜感激。多谢各位
chessBoard = [["|_"] * 8 for i in range(8)]
moves = [(1, 2), (1, 4), (5, 2), (5, 4), (2, 1), (2, 5), (4, 1), (4, 5)]
index_to_letter = {
0: "a",
1: "b",
2: "c",
3: "d",
4: "e",
5: "f",
6: "g",
7: "h"
}
def test():
x = 0
y = 8
for i in range(len(chessBoard)):
print(*chessBoard[i],end="")
if i%8==x:
print("",y)
x += 1
y -= 1
for i in range(8):
print("",index_to_letter[i],end=" ")
test()
这里有一个稍微修改过的数据格式。使用它,可以更轻松地显示移动和显示整个网格:
chessBoard = [["_"] * 8 for i in range(8)]
moves = [(1, 2),(1, 4),(5, 2),(5, 4),(2, 1),(2, 5),(4, 1),(4, 5)]
# Add a symbol on the grid for every move
for i, j in moves:
chessBoard[i][j] = "X"
index_to_letter = 'abcdefgh'
# Display board with row numbers
for i, row in enumerate(chessBoard):
print(' | '.join(row) + ' ' + index_to_letter[i])
它输出:
_ | _ | _ | _ | _ | _ | _ | _ a
_ | _ | X | _ | X | _ | _ | _ b
_ | X | _ | _ | _ | X | _ | _ c
_ | _ | _ | _ | _ | _ | _ | _ d
_ | X | _ | _ | _ | X | _ | _ e
_ | _ | X | _ | X | _ | _ | _ f
_ | _ | _ | _ | _ | _ | _ | _ g
_ | _ | _ | _ | _ | _ | _ | _ h
嘿到目前为止,您的代码是什么样子的?除非您不提供答案,否则您的问题将被删除。您想用什么替换
(3,6)
处的值?不应该有第三个值吗?只是一些符号,例如*
。没关系。那些“124;”
在打印时应该形成网格吗?不要将布局内容放入网格中;这将使更新值和使用“棋盘”变得更加困难。那么为什么不使用索引呢?像棋盘[5][2]='*'
_ | _ | _ | _ | _ | _ | _ | _ a
_ | _ | X | _ | X | _ | _ | _ b
_ | X | _ | _ | _ | X | _ | _ c
_ | _ | _ | _ | _ | _ | _ | _ d
_ | X | _ | _ | _ | X | _ | _ e
_ | _ | X | _ | X | _ | _ | _ f
_ | _ | _ | _ | _ | _ | _ | _ g
_ | _ | _ | _ | _ | _ | _ | _ h