ডিকশনারিতে কী (key) এবং মান (value) এর জোড়া থাকে। কখনো কখনো এই জোড়াটি উল্টে দিতে হয়—অর্থাৎ মানকে কী এবং কীকে মান বানাতে হয়। এটি রিভার্স লুকআপ, বাইডিরেকশনাল ম্যাপিং বা ডেটা ট্রান্সফরমেশনে কাজে লাগে। নিচে চারটি পদ্ধতি দেখানো হলো।
উদাহরণ
১. ডিকশনারি কাম্প্রিহেনশন (সর্বাধিক পাইথনিক)
ini_dict = {101: "vishesh", 201: "laptop"}
print("প্রাথমিক ডিকশনারি:", ini_dict)
inv_dict = {v: k for k, v in ini_dict.items()}
print("উল্টে দিয়ে ডিকশনারি:", inv_dict)
# আউটপুট: {'vishesh': 101, 'laptop': 201}
২. zip() এবং dict() ব্যবহার করে
ini_dict = {101: "vishesh", 201: "laptop"}
inv_dict = dict(zip(ini_dict.values(), ini_dict.keys()))
print("উল্টে দিয়ে ডিকশনারি:", inv_dict)
৩. map(reversed, ...) ব্যবহার করে
ini_dict = {101: "akshat", 201: "ball"}
inv_dict = dict(map(reversed, ini_dict.items()))
print("উল্টে দিয়ে ডিকশনারি:", inv_dict)
৪. ল্যাম্বডা ফাংশন (সঠিক ব্যবহার)
ini_dict = {101: "akshat", 201: "ball"}
# ল্যাম্বডা ব্যবহার করে ফাংশন তৈরি
invert = lambda d: {v: k for k, v in d.items()}
inv_dict = invert(ini_dict)
print("উল্টে দিয়ে ডিকশনারি:", inv_dict)
গুরুত্বপূর্ণ: যদি একাধিক কীয়ের একই মান থাকে, তবে উল্টে দিলে ডেটা হারাবে (শুধু শেষ কীটি থাকবে)। উদাহরণ:
{1:'a', 2:'a'} → {'a':2}। এমন ক্ষেত্রে defaultdict(list) ব্যবহার করে সব কী সংরক্ষণ করুন।
তুলনা
| পদ্ধতি | পঠনযোগ্যতা | পারফরম্যান্স | সুপারিশ |
|---|---|---|---|
| ডিকশনারি কাম্প্রিহেনশন | উচ্চ | দ্রুত | সাধারণ ব্যবহারের জন্য সেরা |
| zip + dict | মাঝারি | দ্রুত | ফাংশনাল শৈলী পছন্দ করলে |
| map(reversed) | কম | মাঝারি | বিশেষ কেসে |