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

পাইথন: টাপল লিস্টে ক্রস পেয়ারিং (Cross Pairing)

দুটি টাপল লিস্টের মধ্যে প্রথম এলিমেন্ট মিলে যাওয়া জোড়াগুলোর দ্বিতীয় এলিমেন্ট দিয়ে নতুন টাপল বানানোর জন্য zip(), লিস্ট কম্প্রিহেনশন এবং সমতা চেক ব্যবহার করা হয়।

উদাহরণ

list1 = [('Hi', 'Will'), ('Jack', 'Python'), ('Bill', 'Mills'), ('goodwill', 'Jill')]
list2 = [('Hi', 'Band'), ('Jack', 'width'), ('Bill', 'cool'), ('a', 'b')]

print("লিস্ট ১:", list1)
print("লিস্ট ২:", list2)

# সর্ট (ঐচ্ছিক)
list1.sort()
list2.sort()
print("সর্টেড লিস্ট ১:", list1)
print("সর্টেড লিস্ট ২:", list2)

# zip দিয়ে জোড়া বানানো, প্রথম এলিমেন্ট সমান হলে দ্বিতীয় এলিমেন্ট নেওয়া
result = [(a[1], b[1]) for a, b in zip(list1, list2) if a[0] == b[0]]

print("ফলাফল:", result)

আউটপুট

লিস্ট ১: [('Hi', 'Will'), ('Jack', 'Python'), ('Bill', 'Mills'), ('goodwill', 'Jill')]
লিস্ট ২: [('Hi', 'Band'), ('Jack', 'width'), ('Bill', 'cool'), ('a', 'b')]
সর্টেড লিস্ট ১: [('Bill', 'Mills'), ('Hi', 'Will'), ('Jack', 'Python'), ('goodwill', 'Jill')]
সর্টেড লিস্ট ২: [('Bill', 'cool'), ('Hi', 'Band'), ('Jack', 'width'), ('a', 'b')]
ফলাফল: [('Mills', 'cool'), ('Will', 'Band'), ('Python', 'width')]

ব্যাখ্যা

  • zip(list1, list2) — দুটি লিস্টের একই ইন্ডেক্সের টাপলগুলো জোড়া বানায়
  • a[0] == b[0] — প্রথম এলিমেন্ট (কি) মিলে কিনা চেক করে
  • (a[1], b[1]) — মিললে দ্বিতীয় এলিমেন্ট (ভ্যালু) দিয়ে নতুন টাপল বানায়

দ্রষ্টব্য

এই পদ্ধতিটি ইন্ডেক্স-ভিত্তিক — অর্থাৎ সর্ট করার পর একই পজিশনে থাকা টাপলগুলো জোড়া মেলানো হয়। যদি কি-ভিত্তিক ম্যাপিং চান (ইন্ডেক্স নয়), তবে:


# ডিকশনারি বানিয়ে কি-ভিত্তিক লুকআপ
dict2 = {k: v for k, v in list2}
result = [(v, dict2[k]) for k, v in list1 if k in dict2]
# [('Mills', 'cool'), ('Will', 'Band'), ('Python', 'width')]

এটি ইন্ডেক্স পজিশন নির্বিশেষে কি মিলে যাওয়ায় কাজ করবে।

  1. পাইথনে টাপলের লিস্টে টাপল কম্বাইন করা

  2. পাইথনে টাপল আনপ্যাকিং (Tuple Unpacking) কী?

  3. Python-এ লিস্ট প্রিন্ট করা

  4. পাইথনে লিস্ট vs টাপল vs ডিকশনারি পার্থক্য