2015-12-19 2 views
-1

Я создал список, используя следующий кодСписок печать в списке питона построчно

grid = [['a' for i in range (0,5)] for j in range (0,3)] 
print grid 

Выходной код

[['a', 'a', 'a', 'a', 'a'], ['a', 'a', 'a', 'a', 'a'], ['a', 'a', 'a','a', 'a']] 

Я хочу, чтобы отобразить этот список в виде

[['a', 'a', 'a', 'a', 'a'], 
    ['a', 'a', 'a', 'a', 'a'], 
    ['a', 'a', 'a', 'a', 'a']] 

Какие изменения я должен сделать, чтобы получить этот вывод

Я использую Python 2.7

Я не хочу, чтобы импортировать любые дополнительные модули

ответ

2

Если вы хотите, чтобы избежать импорта каких-либо модулей, как Вы предложили в комментариях, напечатать его таким образом, вступив в строковое представление внутренних списков с новыми линиями вручную:

print '[' + ',\n '.join(str(x) for x in grid) + ']' 

работает следующим образом:

>>> grid = [['a' for i in range (0,5)] for j in range (0,3)] 
>>> print '[' + ',\n '.join(str(x) for x in grid) + ']' 
[['a', 'a', 'a', 'a', 'a'], 
['a', 'a', 'a', 'a', 'a'], 
['a', 'a', 'a', 'a', 'a']] 
+1

Urgh. Что, если строка внутри списка содержит '],'? Выход будет испорчен –

+0

Да, правильно. Давайте попробуем еще раз ... Хорошо, это должно быть лучше. – Szymon

+0

Спасибо. @Szymon – RoY

6

Вы могли бы просто использовать pprint.pprint(), чтобы сделать это:

>>> from pprint import pprint 
>>> grid = [['a' for i in range (0,5)] for j in range (0,3)] 
>>> pprint(grid) 
[['a', 'a', 'a', 'a', 'a'], 
['a', 'a', 'a', 'a', 'a'], 
['a', 'a', 'a', 'a', 'a']] 
>>> 

Из документа:

Печать форматированное представление объекта в потоке, за которым следует новая строка. Если используется поток None, используется sys.stdout. Это можно использовать в интерактивном интерпретаторе вместо оператора print для проверки значений. отступ, ширина и глубина будут переданы в конструктор PrettyPrinter в качестве параметров форматирования.

+0

Поблагодарите u @kevin, но могу ли я сделать это без импорта каких-либо дополнительных модулей, таких как pprint – RoY

+1

@RoY: Ну, 'pprint' - это встроенный модуль. Это означает, что у каждого Python 2.7 есть это. Так что на самом деле вам не нужно устанавливать его. Почему бы просто не использовать его? –

+0

, но я хочу этого избежать. – RoY

Смежные вопросы