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

পাইথন: টাপল লিস্টে ভ্যালু অনুযায়ী ইউনিক কি কাউন্ট করা

টাপল লিস্টে প্রতিটি দ্বিতীয় এলিমেন্ট (ভ্যালু) এর সাথে যুক্ত কতগুলো ইউনিক প্রথম এলিমেন্ট (কি) আছে তা গণনা করার জন্য defaultdict, set এবং append ব্যবহার করা হয়।

উদাহরণ


from collections import defaultdict

my_list = [
    (12, 32), (12, 21), (21, 32), (89, 21),
    (71, 21), (89, 11), (99, 10), (8, 23), (10, 23)
]

print("টাপল লিস্ট:", my_list)

# ভ্যালু -> কিসের লিস্ট ম্যাপ
val_to_keys = defaultdict(list)
for key, val in my_list:
    val_to_keys[val].append(key)

# ইউনিক কি কাউন্ট
result = {val: len(set(keys)) for val, keys in val_to_keys.items()}

print("ভ্যালু -> ইউনিক কি কাউন্ট:")
print(result)

আউটপুট


টাপল লিস্ট: [(12, 32), (12, 21), (21, 32), (89, 21), (71, 21), (89, 11), (99, 10), (8, 23), (10, 23)]
ভ্যালু -> ইউনিক কি কাউন্ট:
{32: 2, 21: 3, 11: 1, 10: 1, 23: 2}

ব্যাখ্যা

  • 32 → কি: 12, 21 → ইউনিক: ২টি
  • 21 → কি: 12, 89, 71 → ইউনিক: ৩টি
  • 11 → কি: 89 → ১টি
  • 10 → কি: 99 → ১টি
  • 23 → কি: 8, 10 → ২টি

সংক্ষিপ্ত সংস্করণ (Counter + setdefault)


from collections import defaultdict

val_to_keys = defaultdict(set)  # সেট দিয়ে সরাসরি ইউনিক রাখা
for k, v in my_list:
    val_to_keys[v].add(k)

result = {v: len(keys) for v, keys in val_to_keys.items()}

defaultdict(set) ব্যবহার করলে append এর বদলে add এবং بعدে set() কনভারশন লাগে না।

  1. পাইথনে টাপলে লিস্টের সব এলিমেন্টের আকারেন্স কাউন্ট করা (Count occurrence of all list elements in tuple)

  2. পাইথনে ডিকশনারির লিস্ট ভ্যালুর আইটেম কাউন্ট করা (Count items in dictionary value that is a list)

  3. পাইথন প্রোগ্রাম: টাপল (Tuple) আসা পর্যন্ত লিস্টের এলিমেন্ট গণনা

  4. পাইথন টাপল এলিমেন্টের ভ্যালু আপডেট কীভাবে করবেন?