【发布时间】:2017-03-05 19:57:51
【问题描述】:
我有一个二维网格和一条穿过网格的路径,如下所示:
grid = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
path = [(0, 0), (1, 0), (2, 0), (2, 1), (2, 2)]
我想要的结果是一个格式很好的输出,它描绘了带有所示路径的网格:
*1 2 3
*4 5 6
*7 *8 *9
作为 Python 新手,我并不完全知道如何利用列表推导和字符串格式化来发挥自己的优势。
这是我目前所拥有的:
def print_path(grid, path):
print('\n'.join(''.join(['{:4}'.format(val) for val in row]) for row in grid))
--- Output ---
1 2 3
4 5 6
7 8 9
我在路径中特定元素之前获取星号的想法是将实际的网格元素映射到应该在结果中使用的字符串表示,所以:
1 => "*1"
2 => "2"
...
9 => "*9"
总体而言,Python 的语法让人难以抗拒。我正在尝试写得更像 Python-er 而不是 Java-er(我对此感到满意)。任何提示/提示/解决方案将不胜感激!
【问题讨论】:
标签: python python-3.x formatting