从扁平元组字典创建网格

0 投票
1 回答
620 浏览
提问于 2025-04-17 13:58

好的,我最近一直在想怎么做这件事,但就是想不出来。我有一个字典,里面存的是网格上的点……

{(0,0):...(0,1):...}

我想用 addchcurses 中把这个字典可视化。

字典里的点要在屏幕上显示出来,得先转换成这样:

x, y
0,0 => 1,1
1,0 => 3,1
2,0 => 5,1
3,0 => 7,1

0,0 => 1,1
0,1 => 1,3
0,2 => 1,5
0,3 => 1,7

在这里输入图片描述

我想不出一个简单的方法把 (0,3) 转换成 (1,7)(也就是屏幕网格的中心)。

1 个回答

2

看起来这个转换其实很简单。

x1 = 2 * x_0 + 1
y1 = 2 * y_0 + 1

所以,如果你想用这种方式来转换字典,你可以直接这样做:

new_dict = {(2 * x + 1, 2 * y + 1): v for (x, y), v in d.items()}

比如说:

d = {(1, 3): 12, (7, 1): 90, (3, 1): 8, (1, 5): 15, (5, 1): 40, (1, 1): 1}
new_dict = {(2 * x + 1, 2 * y + 1): v for (x, y), v in d.items()}
print new_dict
# {(1, 3): 12, (7, 1): 90, (3, 1): 8, (1, 5): 15, (5, 1): 40, (1, 1): 1}

撰写回答