Python: как распечатать список 2d, отформатированный в сетке?

В настоящее время я сделал этот код

def grid_maker(h,w): grid = [[["-"] for i in range(w)] for i in range(h)] grid[0][0] = ["o"] print grid >>>grid_maker(3,5) => [[['o'], ['-'], ['-'], ['-'], ['-']], [['-'], ['-'], ['-'], ['-'], ['-']], [['-'], ['-'], ['-'], ['-'], ['-']]] 

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

 o---- ----- ----- 

Однако я не уверен, с чего начать.

3 Solutions collect form web for “Python: как распечатать список 2d, отформатированный в сетке?”

Если вы хотите использовать результат grid_maker() , вы должны вернуть его результат, используя return :

 def grid_maker(h, w): grid = [["-" for i in range(w)] for i in range(h)] grid[0][0] = "o" return grid 

Я изменил его, потому что я не думаю, что каждый элемент должен находиться внутри другого list .

Чтобы напечатать «сетку», вы можете выполнять итерацию по каждой строке, а затем перебирать каждый элемент:

 def print_grid(grid): for row in grid: for e in row: print e, print 

Вывод:

 print_grid(grid_maker(3, 5)) o - - - - - - - - - - - - - - 

Если вы хотите «красиво» распечатать свою сетку с каждым подсписком в своей собственной строке, вы можете использовать pprint :

 >>> grid=[[['o'], ['-'], ['-'], ['-'], ['-']], [['-'], ['-'], ['-'], ['-'], ['-']], [['-'], ['-'], ['-'], ['-'], ['-']]] >>> from pprint import pprint >>> pprint(grid) [[['o'], ['-'], ['-'], ['-'], ['-']], [['-'], ['-'], ['-'], ['-'], ['-']], [['-'], ['-'], ['-'], ['-'], ['-']]] 

Он все равно покажет каждый элемент в виде списка, как вы его определили, если вы хотите показать их как строки, вам придется использовать объединения, например, м.васовски.

Использовать строку join ()

 for row in grid: print ''.join(*zip(*row)) 

или как однострочный:

 print '\n'.join(''.join(*zip(*row)) for row in grid) 

но если бы рекомендовал вам все изменить:

 def grid_maker(h,w): grid = [["-" for _ in range(w)] for _ in range(h)] grid[0][0] = "o" return grid print '\n'.join(''.join(row) for row in grid_maker(5,5)) 
  • Поверните 3D-изображения, чтобы сделать их 2D
  • Как определить проекцию (2D или 3D) объекта осей matplotlib?
  • Pygame камера следовать в 2d плитки
  • Как я могу превратить случайную матрицу в таблицу?
  • Поверните 2D-матрицу / список Python в таблицу
  • 2D-гистограмма с Python
  • python 2d массив для определения
  • 2d массив списков в python
  •  
    Interesting Posts for Van-Lav

    Python argparse игнорирует непризнанные аргументы

    Доступ к MySQL из Python 3: доступ запрещен для пользователя

    Python 2.7 UnicodeDecodeError: кодек 'ascii' не может декодировать байт

    Как получить общий шаблон тега для списка предложений в python с помощью NLTK

    Старое хэширование питона выполняется слева направо – почему это плохо?

    В Python, как мне создать строку из n символов в одной строке кода?

    Как правильно исключить элементы в словаре до тех пор, пока не останется одна строка

    Обратная связь: Визуализация для деревьев Apache Spark Decision

    SQLAlchemy: В чем разница между flush () и commit ()?

    Регистрация Python для нескольких обработчиков на разных уровнях журнала?

    Как отправлять и извлекать blob с Django

    Матрица от Python до MATLAB

    Непосредственно вызовите функцию setuptools distutils или setuptools () с именем / параметрами команды, без разбора командной строки?

    Вставьте Pandas Dataframe в mongodb, используя PyMongo

    Получить строку после определенной подстроки

    Python - лучший язык программирования в мире.