নেস্টেড লিস্ট (ম্যাট্রিক্স) থেকে যেসব সারির সব এলিমেন্ট নির্দিষ্ট সংখ্যা K-র গুণিতক, শুধু সেসব সারি ফিল্টার করার জন্য লিস্ট কম্প্রিহেনশন, all() এবং মডুলাস অপারেটর ব্যবহার করা হয়।
উদাহরণ
my_list = [[15, 10, 25], [14, 28, 23], [120, 55], [55, 30, 203]]
K = 5
print("ম্যাট্রিক্স:", my_list)
print("K =", K)
# সব এলিমেন্ট K-র গুণিতক হলে রাখা
filtered = [row for row in my_list if all(x % K == 0 for x in row)]
print("ফিল্টার করা সারিগুলো:")
print(filtered)
আউটপুট
ম্যাট্রিক্স: [[15, 10, 25], [14, 28, 23], [120, 55], [55, 30, 203]]
K = 5
ফিল্টার করা সারিগুলো: [[15, 10, 25], [120, 55]]
ব্যাখ্যা
| সারি | এলিমেন্টস | K=5 দিয়ে ভাগশেষ | ফলাফল |
|---|---|---|---|
| [15, 10, 25] | 15, 10, 25 | 0, 0, 0 | ✓ রাখা |
| [14, 28, 23] | 14, 28, 23 | 4, 3, 3 | ✗ বাদ |
| [120, 55] | 120, 55 | 0, 0 | ✓ রাখা |
| [55, 30, 203] | 55, 30, 203 | 0, 0, 3 | ✗ বাদ |
ফাংশনাল সংস্করণ
def is_multiple_of_k(row, k):
return all(x % k == 0 for x in row)
filtered = list(filter(lambda row: is_multiple_of_k(row, K), my_list))
NumPy ব্যবহার (বড় ম্যাট্রিক্সের জন্য দ্রুত)
import numpy as np
arr = np.array(my_list, dtype=object) # অসমান দৈর্ঘ্যের সারি হলে object dtype
# সমান দৈর্ঘ্য হলে সরাসরি 2D array
arr = np.array([[15, 10, 25], [14, 28, 23], [120, 55, 0], [55, 30, 203]])
mask = (arr % K == 0).all(axis=1)
filtered = arr[mask].tolist()
print(filtered)