逐行打印python列表中的列表

时间:2015-12-19 04:04:51

标签: python python-2.7

我使用以下代码

创建了一个列表
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 个答案:

答案 0 :(得分: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构造函数。

答案 1 :(得分: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']]