কম্পিউটার টিউটোরিয়াল

পাইথন - ডিকশনারির ম্যাপিং উল্টে দেওয়ার পদ্ধতিগুলো (Key-Value Swap)

ডিকশনারিতে কী (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)কমমাঝারিবিশেষ কেসে
  1. পাইথন ডিকশনারি has_key() মেথড

  2. পাইথনে ডিকশনারি (Dictionary) এর ওপর ইটারেট করা

  3. পাইথন ম্যাপিং টাইপস (Mapping Types)

  4. পাইথনে ডিকশনারি মেথডসমূহ (Dictionary Methods)