【发布时间】:2016-11-26 18:15:46
【问题描述】:
我有一本列表字典,而且列表很长。如何以仅显示列表中的几个元素的方式打印它?显然,我可以为此编写一个自定义函数,但是是否有任何内置方法或库可以实现这一点?例如,在打印大数据帧时,pandas 会以很短的方式很好地打印它。
这个例子更好地说明了我的意思:
obj = {'key_1': ['EG8XYD9FVN',
'S2WARDCVAO',
'J00YCU55DP',
'R07BUIF2F7',
'VGPS1JD0UM',
'WL3TWSDP8E',
'LD8QY7DMJ3',
'J36U3Z9KOQ',
'KU2FUGYB2U',
'JF3RQ315BY'],
'key_2': ['162LO154PM',
'3ROAV881V2',
'I4T79LP18J',
'WBD36EM6QL',
'DEIODVQU46',
'KWSJA5WDKQ',
'WX9SVRFO0G',
'6UN63WU64G',
'3Z89U7XM60',
'167CYON6YN']}
期望的输出:像这样:
{'key_1':
['EG8XYD9FVN', 'S2WARDCVAO', '...'],
'key_2':
['162LO154PM', '3ROAV881V2', '...']
}
【问题讨论】:
-
您可能还想看看
reprmodule(Py3 中的reprlib),尤其是maxlist设置:rep = Repr(); rep.maxlist = 3; print rep.repr(obj)现在将其与pprint结合起来才是真正的挑战. -
太棒了!这是最好的答案,正是我所需要的。你可以添加作为答案吗? @LukasGraf
-
Michael Hoff 似乎已经在研究 reprlib 答案,所以我只是赞成 :)
-
这不是缩写!实例化
Repr类并设置maxlist是关键! -
确实有,只是
maxlist的默认是6,所以不太明显。另请注意,__builtins__.repr()与repr.repr()不同(是的,命名在 Python 2.x 中确实没有帮助)。
标签: python list dictionary pretty-print