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

পাইথন প্রোগ্রাম - সেটের লিস্টে ডুপ্লিকেট সেট খুঁজে বের করা

একটি লিস্টে সেট অবজেক্ট থাকলে, ডুপ্লিকেট সেটগুলো (অর্ডার নির্বিশেষে সমান সেট) খুঁজে বের করতে Counter এবং frozenset ব্যবহার করা হয়। সেট মিউটেবল হয়ে হ্যাশেবল নয়, তাই frozenset ব্যবহার করা হয়।

উদাহরণ

from collections import Counter

my_list = [{4, 8, 6, 1}, {6, 4, 1, 8}, {1, 2, 6, 2}, {1, 4, 2}, {7, 8, 9}]
print("The list is :")
print(my_list)

my_freq = Counter(frozenset(sub) for sub in my_list)
my_result = []

for key, value in my_freq.items():
    if value > 1:
        my_result.append(key)

print("The result is :")
print(my_result)

আউটপুট

The list is : [{8, 1, 4, 6}, {8, 1, 4, 6}, {1, 2, 6}, {1, 2, 4}, {8, 9, 7}]
The result is : [frozenset({8, 1, 4, 6})]

ব্যাখ্যা

  • সেটের লিস্ট ডিফাইন এবং ডিসপ্লে করা হয় (প্রিন্টে অর্ডার বদলতে পারে)।
  • প্রতিটি সাব-সেটকে frozenset এ কনভার্ট করে Counter দিয়ে ফ্রিকোয়েন্সি কাউন্ট করা হয়।
  • ফ্রিকোয়েন্সি > 1 হলে সেটটি ডুপ্লিকেট।
  • ডুপ্লিকেট সেটগুলো রেজাল্ট লিস্টে অ্যাপেন্ড করা হয়।
  • ফলাফল: {8, 1, 4, 6} দুবার এসেছে।

নোট: frozenset ইমিউটেবল এবং হ্যাশেবল, তাই ডিকশনারি কী বা Counter-এ ব্যবহার করা যায়।

  1. পাইথন প্রোগ্রাম লিস্টে সবচেয়ে ছোট সংখ্যা বের করা

  2. লিস্টের কিউমুলেটিভ সাম বের করার পাইথন প্রোগ্রাম

  3. পাইথনে লিস্টের এলিমেন্টগুলোর যোগফল বের করা

  4. পাইথনে ৩D লিস্ট তৈরি করার প্রোগ্রাম