另一种方法是先“反转”字典,然后在坐标上循环并在反向字典中查找。在
比如:#d1 = {‘.’ : [[0,0],[0,1]…], ‘X’: [[0,2], [8,1]…] }
d1 = {‘.’ : [[0,0],[0,1]], ‘X’: [[0,2], [8,1]] }
# “Invert” the dictionary
d2 = {}
for (symbol, coords) in d1.items():
for coord in coords:
d2[tuple(coord)] = symbol # Note 1
# Display it (assuming your coordinates go from 0-9 inclusive
for y in range(10):
for x in range(10):
sym = d2.get((x,y), ‘ ‘) # Note 2
print(sym, end=”) # Note 2
# Print a newline at the end of each row
print()
注1:这里,coord是一个2元素的列表,但是由于列表不能用作字典键,所以我将它们转换为元组。在
注2:这是必要的,因为示例代码有一个不完整的d1字典。如果您的d1字典已经说明了所有的对,那么您可以将这两行合并成
^{pr2}$
注3:这里我们为print函数指定一个可选参数,告诉它在打印后添加一个换行符。在
输出看起来有点奇怪:.
. X
X
(只有额外的空格行)但这仅仅是因为我的d1字典不完整。在
最后,您可能会经历所有这些,并注意到您的董事会似乎关闭,就像模式是上升时,它应该指向正确的。如果是这样的话,你的坐标是(y,x)顺序的,我假设它们是(x,y)顺序的。换线就行了d2.get((x,y), ‘ ‘)
到d2.get((y,x), ‘ ‘)
或者,如果你在注释2中做了简化,改变
^{pr2}$
到print(d2[(y,x)], end=”)