2013-11-11 2 views
0

Я пытаюсь напечатать матрицу с назначенной пользователем переменной для длины и ширины, но для облегчения чтения использовала ручное назначение. Прямо сейчас мой вывод не содержит никаких новых строк, но это то, что я пытаюсь сделать.Включить инструкцию печати новой строки в (вложенной)? для цикла?

def matrix(rows,cols): 
    grid = [[0 for i in range(cols)] for i in range(rows)] 
    return grid 

rows = 5 
cols = 5 
print(matrix(rows,cols)) 

Возможно ли вставить инструкцию print ("\ n") в оператор for для правильной печати матрицы. В настоящее время выход следующим образом:

[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]] 

Желаемый результат:

[[0, 0, 0, 0, 0], 
[0, 0, 0, 0, 0], 
[0, 0, 0, 0, 0], 
[0, 0, 0, 0, 0], 
[0, 0, 0, 0, 0]] 
+0

Я хотел бы указать, что вставка инструкции печати в цикл for будет плохой идеей, даже если вы можете это сделать. Часто бывает неплохо иметь четкое разделение между вашими данными (матрицей) и уровнем презентации (печать, пользовательский интерфейс, stc). – hugomg

ответ

4

Это случается точное поведение pprint.

from pprint import pprint 

def matrix(rows,cols): 
    grid = [[0 for i in range(cols)] for i in range(rows)] 
    return grid 

rows = 5 
cols = 5 
pprint(matrix(rows,cols)) 
+0

Я внес изменения, которые вы предложили, я получаю сообщение об ошибке «неожиданный EOF при разборе». Прочитайте ссылку, которую вы оставили. – user2909869

+0

У меня не было закрытия) по вызову pprint(). Попробуйте добавить его :) – TkTech

+0

Ah yes, ha. Я иногда скучаю по поводу чего-то, ценю последующие действия. – user2909869

0

pprint делать то, что вам нужно, приятно, но разве вы не должны использовать класс для вашего типа матрицы? Использование голого списка списков может укусить вас позже.