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

পাইথন: লিস্টে ক্রস প্যাটার্ন পেয়ার (Cross Pattern Pairs) জেনারেট করা

দুটি লিস্টের সব সম্ভাব্য জোড়া (Cartesian product) বানিয়ে তাদের গুণফল বের করার জন্য লিস্ট কম্প্রিহেনশন এবং * অপারেটর ব্যবহার করা হয়।

উদাহরণ


list1 = [14, 35, 26]
list2 = [36, 24, 12]

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

# ক্রস পেয়ার গুণফল: list2-এর প্রতিটি এলিমেন্ট × list1-এর প্রতিটি এলিমেন্ট
result = [i * j for j in list1 for i in list2]

print("ক্রস গুণফল লিস্ট:")
print(result)

আউটপুট


লিস্ট ১: [14, 35, 26]
লিস্ট ২: [36, 24, 12]
ক্রস গুণফল লিস্ট: [504, 336, 168, 1260, 840, 420, 936, 624, 312]

ব্যাখ্যা

[i * j for j in list1 for i in list2] এর অর্ডার:

  1. list2-এর প্রথম এলিমেন্ট (36) × list1-এর সব (14, 35, 26) → 504, 1260, 936
  2. list2-এর دوم এলিমেন্ট (24) × list1-এর সব → 336, 840, 624
  3. list2-এর তৃতীয় এলিমেন্ট (12) × list1-এর সব → 168, 420, 312

মোট ৩ × ৩ = ৯ টি ফলাফল।

itertools.product ব্যবহার (সুপারিশকৃত)


from itertools import product

result = [i * j for i, j in product(list2, list1)]
# একই ফলাফল, আরও পঠনযোগ্য

টাপল আউটপুট (যে জোড়া থেকে আসলো)


pairs = [(i, j, i*j) for i, j in product(list2, list1)]
for a, b, prod in pairs:
    print(f"{a} × {b} = {prod}")

NumPy outer product (দ্রুত, ভেক্টরাইজড)


import numpy as np
arr1 = np.array(list1)
arr2 = np.array(list2)
outer = np.outer(arr2, arr1).flatten()  # বা ravel()
print(outer)  # [504 336 168 1260 840 420 936 624 312]
  1. পাইথনে প্যাটার্ন প্রিন্ট করার পদ্ধতি

  2. পাইথনে লিস্ট ক্লিয়ার করার বিভিন্ন উপায়

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

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