pprint()
অভ্যন্তরীণভাবে স্টক ফাংশনটিকে ওভাররাইড করে এবং ব্যবহার করে এখানে আরও একটি উত্তর দেওয়া হয়েছে । ভিন্ন আমার আগের এক এটি হবে হ্যান্ডেল OrderedDict
'যেমন একটি হিসাবে অন্য ধারক ভিতরে গুলি list
এবং প্রদত্ত কোন ঐচ্ছিক শব্দ আর্গুমেন্ট হ্যান্ডেল করতে সক্ষম হওয়া উচিত - তবে আউটপুট আছে যা অন্য এক afforded উপর নিয়ন্ত্রণের একই ডিগ্রী নেই।
এটি স্টক ফাংশনটির আউটপুটটিকে অস্থায়ী বাফারে পুনর্নির্দেশ করে এবং আউটপুট প্রবাহে প্রেরণের আগে শব্দটি মোড়কে পরিচালনা করে। উত্পাদিত চূড়ান্ত আউটপুটটি ব্যতিক্রমীভাবে সুন্দর না হলেও এটি শালীন এবং একটি কাজের হিসাবে ব্যবহার করার জন্য "যথেষ্ট ভাল" হতে পারে।
আপডেট 2.0
স্ট্যান্ডার্ড লাইব্রেরি textwrap
মডিউল ব্যবহার করে সরলীকৃত এবং পাইথন 2 এবং 3 উভয় ক্ষেত্রেই সংশোধিত।
from collections import OrderedDict
try:
from cStringIO import StringIO
except ImportError:
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:
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()
try:
print >> stream, textwrap.fill(' '.join(words), width=width)
except TypeError:
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)])]