কম্পিউটার

পাইথনে অভিধানে ডুপ্লিকেট মান সহ কী খুঁজুন


অভিধানের সাথে কাজ করার সময়, আমরা এমন পরিস্থিতির সম্মুখীন হতে পারি যখন অভিধানে ডুপ্লিকেট মান থাকে এবং স্পষ্টতই কীগুলি অনন্য থাকে। এই নিবন্ধে আমরা দেখব কিভাবে আমরা থি অর্জন করতে পারি।

কী এবং মান বিনিময়

আমরা অভিধানের মানগুলির সাথে কীগুলি বিনিময় করি এবং তারপরে একটি প্রদত্ত কী-এর সাথে যুক্ত মানগুলি যুক্ত করতে থাকি। এইভাবে ডুপ্লিকেট মানগুলি একত্রিত হয়ে যায় এবং আমরা সেগুলিকে নতুন অভিধানে দেখতে পারি৷

উদাহরণ

dictA = {'Sun': 5, 'Mon': 3, 'Tue': 5, 'Wed': 3}

print("Given Dictionary :", dictA)

k_v_exchanged = {}

for key, value in dictA.items():
   if value not in k_v_exchanged:
      k_v_exchanged[value] = [key]
   else:
      k_v_exchanged[value].append(key)

# Result
print("New Dictionary:", k_v_exchanged)

আউটপুট

উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয় -

Given Dictionary : {'Sun': 5, 'Mon': 3, 'Tue': 5, 'Wed': 3}
New Dictionary: {5: ['Sun', 'Tue'], 3: ['Mon', 'Wed']}

সেট সহ

আমরা এখানে একটি অনুরূপ পদ্ধতি অনুসরণ. এখানেও আমরা সেট ফাংশন ব্যবহার করে বিদ্যমান অভিধান থেকে একটি নতুন অভিধান তৈরি করি এবং ডুপ্লিকেট মান সহ কী যোগ করি। অবশেষে আমরা সেই মানগুলিকে ফিল্টার করি যেখানে দৈর্ঘ্য 1-এর বেশি হয় এবং সেগুলিকে সদৃশ হিসাবে চিহ্নিত করি৷

উদাহরণ

dictA = {'Sun': 5, 'Mon': 3, 'Tue': 5, 'Wed': 4}

print("Given Dictionary :", dictA)

dictB = {}
for key, value in dictA.items():
   dictB.setdefault(value, set()).add(key)

res = filter(lambda x: len(x) >1, dictB.values())

# Result
print("New Dictionary:",list(res))

আউটপুট

উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয় -

Given Dictionary : {'Sun': 5, 'Mon': 3, 'Tue': 5, 'Wed': 4}
New Dictionary: [{'Tue', 'Sun'}]

  1. পাইথন অভিধানে অ-শূন্য মানগুলির গড় কীভাবে খুঁজে পাবেন?

  2. পাইথন অভিধানের মানগুলি কীভাবে যোগ করবেন?

  3. পাইথন অভিধান কী/মানগুলিকে ছোট হাতের অক্ষরে কীভাবে রূপান্তর করবেন?

  4. ডুপ্লিকেট কী দিয়ে পাইথন অভিধান কীভাবে তৈরি করবেন?