类似于Numpy的python对象打印

Pom*_*mmy 5 python printing ipython

在Ipython中进行数据分析时,我经常需要通过将其内容打印到shell来查看数据.Numpy只有在它们太长的时候才能显示巨大物体的边缘.我真的很喜欢ndarrays的这个功能,但是当我打印内部python对象(例如,带有15k对象的字典)时,它们会被转储到屏幕上,或者有时会以不太友好的方式被截断.因此,例如对于一个巨大的字典,我希望在输出中看到这样的东西

{ '39416' : '1397',  
  '39414' : '1397',  
  '7629'  : '7227',  
  ...,  
  '31058' : '9606',  
  '21097' : '4062',  
  '32040' : '9606' }  
Run Code Online (Sandbox Code Playgroud)

如果可以处理对齐和嵌套数据结构,那将是完美的.它们是一个特殊的模块,可以为python基类(list,dict)提供这样的功能吗?或者有一些我一无所知的ipython配置技巧?

vsm*_*kov 1

有一个很好的内置库pprint。看看它。

>>> from pprint import pprint
>>> pprint({x: list(range(x)) for x in range(10)})
{0: [],
 1: [0],
 2: [0, 1],
 3: [0, 1, 2],
 4: [0, 1, 2, 3],
 5: [0, 1, 2, 3, 4],
 6: [0, 1, 2, 3, 4, 5],
 7: [0, 1, 2, 3, 4, 5, 6],
 8: [0, 1, 2, 3, 4, 5, 6, 7],
 9: [0, 1, 2, 3, 4, 5, 6, 7, 8]}
Run Code Online (Sandbox Code Playgroud)