পাইথন 3.0 এবং 3.1 EOL'ed হয় এবং কেউ এগুলি ব্যবহার করে না, আপনি ব্যবহার করতে পারেন এবং ব্যবহার করতে পারেন str.format_map(mapping)(পাইথন 3.2+):
অনুরূপ str.format(**mapping), বাদে ম্যাপিং সরাসরি ব্যবহৃত হয় এবং এ-তে অনুলিপি করা হয় নাdict । উদাহরণস্বরূপ ম্যাপিং একটি dictসাবক্লাস হয় তবে এটি কার্যকর।
এর অর্থ হ'ল আপনি উদাহরণস্বরূপ এমন একটি ব্যবহার করতে পারেন defaultdictযা অনুপস্থিত কীগুলির জন্য একটি ডিফল্ট মান সেট করে (এবং ফিরে) দেয়:
>>> from collections import defaultdict
>>> vals = defaultdict(lambda: '<unset>', {'bar': 'baz'})
>>> 'foo is {foo} and bar is {bar}'.format_map(vals)
'foo is <unset> and bar is baz'
প্রদত্ত ম্যাপিংটি যদি dictএকটি সাবক্লাস নয় তবে এটি সম্ভবত কিছুটা দ্রুত হবে।
পার্থক্যটি বড় নয়, দেওয়া হলেও
>>> d = dict(foo='x', bar='y', baz='z')
তারপর
>>> 'foo is {foo}, bar is {bar} and baz is {baz}'.format_map(d)
এর চেয়ে প্রায় 10 এনএস (2%) দ্রুত
>>> 'foo is {foo}, bar is {bar} and baz is {baz}'.format(**d)
আমার পাইথন 3.4.3 এ। পার্থক্য সম্ভবত আরও বড় হবে কারণ অভিধানে আরও কী রয়েছে এবং
নোট করুন যে বিন্যাসের ভাষা যদিও এর চেয়ে অনেক বেশি নমনীয়; এগুলিতে ইনডেক্সড এক্সপ্রেশন, অ্যাট্রিবিউট অ্যাক্সেস ইত্যাদি থাকতে পারে, যাতে আপনি একটি সম্পূর্ণ অবজেক্ট বা তার মধ্যে দুটি ফর্ম্যাট করতে পারেন :
>>> p1 = {'latitude':41.123,'longitude':71.091}
>>> p2 = {'latitude':56.456,'longitude':23.456}
>>> '{0[latitude]} {0[longitude]} - {1[latitude]} {1[longitude]}'.format(p1, p2)
'41.123 71.091 - 56.456 23.456'
৩.6 থেকে শুরু করে আপনি ইন্টারপোল্টেড স্ট্রিংগুলিও ব্যবহার করতে পারেন:
>>> f'lat:{p1["latitude"]} lng:{p1["longitude"]}'
'lat:41.123 lng:71.091'
নেস্টেড কোটগুলির মধ্যে আপনাকে অন্যান্য উদ্ধৃতি অক্ষরগুলি ব্যবহার করতে হবে কেবল মনে রাখতে হবে । এই পদ্ধতির আর একটি sideর্ধ্বমুখী হ'ল এটি কোনও ফর্ম্যাটিং পদ্ধতি কল করার চেয়ে অনেক দ্রুত ।