ChainMap ডিকশনারিগুলোকে একক ইউনিটে এনক্যাপসুলেট করতে ব্যবহৃত হয়।
ChainMap একটি স্ট্যান্ডার্ড লাইব্রেরি ক্লাস, যা collections মডিউলে অবস্থিত।
এটি ব্যবহার করতে হলে প্রথমে collections স্ট্যান্ডার্ড লাইব্রেরি মডিউলটি ইম্পোর্ট করতে হবে।
import collections
এই বিভাগে আমরা ChainMap ক্লাসের কিছু ফাংশন দেখব।
maps এবং keys() values() ফাংশন
maps ChainMap- থেকে সকল ডিকশনারির সব কী-ভ্যালু পেয়ার দেখাতে ব্যবহৃত হয়। keys() মেথড ChainMap- থেকে কীগুলো ফেরত দেবে, এবং values() মেথড ChainMap- থেকে বিভিন্ন কীয়ের সব মান ফেরত দেবে।
উদাহরণ কোড
import collections as col
con_code1 = {'India' : 'IN', 'China' : 'CN'}
con_code2 = {'France' : 'FR', 'United Kingdom' : 'GB'}
chain = col.ChainMap(con_code1, con_code2)
print("Initial Chain: " + str(chain.maps))
print('The keys in the ChainMap: ' + str(list(chain.keys())))
print('The values in the ChainMap: ' + str(list(chain.values())))
আউটপুট
Initial Chain: [{'India': 'IN', 'China': 'CN'}, {'France': 'FR', 'United Kingdom': 'GB'}]
The keys in the ChainMap: ['China', 'United Kingdom', 'India', 'France']
The values in the ChainMap: ['CN', 'GB', 'IN', 'FR']
new_child() এবং রিভার্সড মেথড
new_child() মেথড ChainMap- এর শুরুতে একটি অন্য ডিকশনারি অবজেক্ট যোগ করতে ব্যবহৃত হয়। এবং রিভার্সড মেথডও ChainMap-এ ব্যবহার করা যায় কী-ভ্যালু পেয়ারগুলোর ক্রম উল্টাতে।
উদাহরণ কোড
import collections as col
con_code1 = {'India' : 'IN', 'China' : 'CN'}
con_code2 = {'France' : 'FR', 'United Kingdom' : 'GB'}
code = {'Japan' : 'JP'}
chain = col.ChainMap(con_code1, con_code2)
print("Initial Chain: " + str(chain.maps))
chain = chain.new_child(code) # নতুন চাইল্ড ইনসার্ট
print("Chain after Inserting new Child: " + str(chain.maps))
chain.maps = reversed(chain.maps)
print("Reversed Chain: " + str(chain))
আউটপুট
Initial Chain: [{'India': 'IN', 'China': 'CN'}, {'France': 'FR', 'United Kingdom': 'GB'}]
Chain after Inserting new Child: [{'Japan': 'JP'}, {'India': 'IN', 'China': 'CN'}, {'France': 'FR', 'United Kingdom': 'GB'}]
Reversed Chain: ChainMap({'France': 'FR', 'United Kingdom': 'GB'}, {'India': 'IN', 'China': 'CN'}, {'Japan': 'JP'})