如何以与python控制台相同的格式打印

时间:2019-01-08 01:48:50

标签: python formatting

例如,我正在IPython控制台中使用3D阵列:

In [8]: xx = [[[0 for i in range(4)] for j in range(4)] for k in range(4)]

xx
Out[9]: 
[[[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, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]]

print(xx)
[[[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, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]]

当我只是在控制台中评估数组时,它的格式很好,但是当我打印()时,它以一长行格式设置,然后包装起来看起来很恐怖。有很多方法可以从程序中重现终端样式的格式,但是是否可以直接调用为控制台格式化的函数呢?我尝试过

repr(xx)

但是那没有达到预期的效果。这样的功能通常可能有用,而不仅仅是数组。

1 个答案:

答案 0 :(得分:2)

使用pprint,如下所示:

>>> import pprint
>>> pprint.pprint(xx)
[[[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, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]]
>>>