2022年 11月 16日

python 字典嵌套列表 循环打印_遍历具有嵌套列表的字典并在板位置打印

另一种方法是先“反转”字典,然后在坐标上循环并在反向字典中查找。在

比如:#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=”)