0

好的,我一直在尝试找出最好的方法来做到这一点,但它只是没有找到我。我有一本带有网格点的字典...

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

我想使用addchin可视化这本字典curses

字典中的点,要打印在屏幕上,必须像这样转换:

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)(屏幕网格的中心)。

4

1 回答 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}
于 2013-01-28T20:12:03.853 回答