使用python中的enumerate在单独的行上打印编号的嵌套列表

时间:2011-10-02 00:30:07

标签: python enumerate

虽然我怀疑它有一个暂时从我脑中漏出的简单修复,但我还是试图达到以下目的而感到悲伤。我需要能够打印一个可变尺寸的网格,其左下方有数字,如下所示

1 - + -
2 + - + 
3 - + -

网格由嵌套列表组成,enumerate使用i+1,如下所示

for i, line in enumerate(grid):
    return i+1, line

我可以在左侧获得这些数字,但输出显示为不整齐的列表,而不是我所追求的,目前我正在使用

打印网格(没有数字)
def print_grid(grid):
    for line in grid:
        for char in line:
            print char,
        print

我应该使用其他东西而不是枚举来获取这些数字吗?因为可以使用可变参数设置网格,所以我真的希望有一种方法可以在打印它时实现这一点,而不是修改我用于构建网格的代码,我迫切希望不要篡改它至少打破它?我已经在互联网上进行了搜索,并且发现了一些情况,人们在他们正在绘制的任何图片的基础上都出现了数字,而不是像这样在左手边。无论我在print_grid函数中将枚举语句放在哪里,它都会混淆输出。

2 个答案:

答案 0 :(得分:3)

您可以将每个列表合并为一个字符串:

for i, line in enumerate(grid, 1):
    print i, ' '.join(line)

答案 1 :(得分:1)

你在找这个吗?

for i, line in enumerate(grid):
   print i,
   for char in line:
      print char,
   print