Печать пронумерованных вложенных списков на отдельных строках с использованием перечисления в Python - PullRequest
2 голосов
/ 02 октября 2011

Я потерпел неудачу, пытаясь добиться следующего, хотя подозреваю, что у него есть простое исправление, которое временно просочилось из моего мозга. Мне нужно иметь возможность печатать сетку с переменными размерами, которая имеет цифры внизу слева, как показано ниже

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

Есть ли что-то еще, что я должен использовать вместо перечисления, чтобы получить эти числа вдоль? Поскольку сетка может быть настроена с переменными параметрами, я действительно надеялся, что найдется способ добиться этого при ее печати, вместо того, чтобы модифицировать код, который я использовал для создания сетки, которую я отчаянно стараюсь не вмешиваться, чтобы она не сломалась? Я провел поиск по Интернету и нашел случаи, когда у людей были цифры, появляющиеся в основании любой картинки, которую они рисуют, но не вниз по левой стороне, как это. Независимо от того, где я помещаю оператор enumerate в функцию print_grid, он портит вывод.

Ответы [ 2 ]

3 голосов
/ 02 октября 2011

Вы можете объединить каждый список в одну строку:

for i, line in enumerate(grid, 1):
    print i, ' '.join(line)
1 голос
/ 02 октября 2011

Вы ищете это?

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