यहां एक और जवाब है जो pprint()
आंतरिक रूप से स्टॉक फ़ंक्शन को ओवरराइड करके और उपयोग करके काम करता है । मेरे पहले वाले के विपरीत यह किसी अन्य कंटेनर के अंदर जैसे हैंडल करेगा और दिए गए किसी भी वैकल्पिक कीवर्ड तर्क को भी संभालने में सक्षम होना चाहिए - हालांकि यह आउटपुट पर नियंत्रण का एक ही डिग्री नहीं है जो दूसरे ने वहन किया है।OrderedDict
list
यह स्टॉक फ़ंक्शन के आउटपुट को एक अस्थायी बफर में पुनर्निर्देशित करके संचालित करता है और फिर आउटपुट स्ट्रीम पर भेजने से पहले शब्द लपेटता है। जबकि उत्पादित अंतिम उत्पादन असाधारण रूप से सुंदर नहीं है, यह सभ्य है और वर्कअराउंड के रूप में उपयोग करने के लिए "काफी अच्छा" हो सकता है।
अद्यतन 2.0
मानक पुस्तकालय textwrap
मॉड्यूल का उपयोग करके सरलीकृत , और पायथन 2 और 3 दोनों में काम करने के लिए संशोधित।
from collections import OrderedDict
try:
from cStringIO import StringIO
except ImportError: # Python 3
from io import StringIO
from pprint import pprint as pp_pprint
import sys
import textwrap
def pprint(object, **kwrds):
try:
width = kwrds['width']
except KeyError: # unlimited, use stock function
pp_pprint(object, **kwrds)
return
buffer = StringIO()
stream = kwrds.get('stream', sys.stdout)
kwrds.update({'stream': buffer})
pp_pprint(object, **kwrds)
words = buffer.getvalue().split()
buffer.close()
# word wrap output onto multiple lines <= width characters
try:
print >> stream, textwrap.fill(' '.join(words), width=width)
except TypeError: # Python 3
print(textwrap.fill(' '.join(words), width=width), file=stream)
d = dict((('john',1), ('paul',2), ('mary',3)))
od = OrderedDict((('john',1), ('paul',2), ('mary',3)))
lod = [OrderedDict((('john',1), ('paul',2), ('mary',3))),
OrderedDict((('moe',1), ('curly',2), ('larry',3))),
OrderedDict((('weapons',1), ('mass',2), ('destruction',3)))]
नमूना उत्पादन:
pprint(d, width=40)
» {'john': 1, 'mary': 3, 'paul': 2}
pprint(od, width=40)
» OrderedDict([('john', 1), ('paul', 2),
('mary', 3)])
pprint(lod, width=40)
» [OrderedDict([('john', 1), ('paul', 2),
('mary', 3)]), OrderedDict([('moe', 1),
('curly', 2), ('larry', 3)]),
OrderedDict([('weapons', 1), ('mass',
2), ('destruction', 3)])]