পাইথনে লিস্ট হলো অনুরূপ আইটেমের একটি সংগ্রহ। কখনো কখনো দুটি লিস্টের ডেটা আইটেম তুলনা করে নির্দিষ্ট অপারেশন করতে হয়। এই আর্টিকেলে পাইথনে দুটি লিস্ট তুলনা করার বিভিন্ন পদ্ধতি আলোচনা করা হবে।
list.sort() এবং == অপারেটর ব্যবহার করা
list.sort() মেথড দুটি লিস্টকে সর্ট করে এবং == অপারেটর লিস্টগুলোকে আইটেম বাই আইটেম তুলনা করে। অর্থাৎ সমান পজিশনে সমান ডেটা আইটেম আছে কিনা তা চেক করে। এই পদ্ধতিতে লিস্টের এলিমেন্টগুলোর অর্ডার (क्रम) বিবেচনা করা হয় না। অর্থাৎ [1,2,3] লিস্ট [2,1,3] লিস্টের সমান বিবেচিত হবে।
উদাহরণ
def compareList(l1, l2):
l1.sort()
l2.sort()
if l1 == l2:
return "Equal"
else:
return "Non equal"
l1 = [1, 2, 3]
l2 = [2, 1, 3]
print("First comparison", compareList(l1, l2))
l3 = [1, 2, 3]
l4 = [1, 2, 4]
print("Second comparison", compareList(l3, l4))
আউটপুট
First comparison Equal Second comparison Non equal
collections.Counter() ব্যবহার করা
এই পদ্ধতিতে লিস্টগুলোর সমানতা যাচাই করতে প্রতিটি এলিমেন্টের ফ্রিকোয়েন্সি (আবির্ভাবের সংখ্যা) তুলনা করা হয়। এই পদ্ধতিতেও এলিমেন্টগুলোর অর্ডার বিবেচনা করা হয় না।
উদাহরণ
import collections
def compareList(l1, l2):
if collections.Counter(l1) == collections.Counter(l2):
return "Equal"
else:
return "Non equal"
l1 = [1, 2, 3]
l2 = [2, 1, 3]
print("First comparison", compareList(l1, l2))
l3 = [1, 2, 3]
l4 = [1, 2, 4]
print("Second comparison", compareList(l3, l4))
আউটপুট
First comparison Non equal Second comparison Equal
sum(), zip() এবং len() ব্যবহার করা
এই পদ্ধতিতে প্রথমে দুটি লিস্টের প্রতিটি এলিমেন্ট তুলনা করে সেগুলোর যোগফল (1 দিয়ে) নির্ণয় করা হয়, তারপর তা অন্য লিস্টের দৈর্ঘ্যের সাথে তুলনা করা হয়। এই পদ্ধতির জন্য প্রথমে দুটি লিস্টের দৈর্ঘ্য সমান কিনা তা চেক করতে হয়।
এই পদ্ধতিটি এলিমেন্টগুলোর অর্ডার বিবেচনা করে। অর্থাৎ [1,2,3] লিস্ট [2,1,3] লিস্টের সমান নয়।
উদাহরণ
def compareList(l1, l2):
if len(l1) == len(l2) and len(l1) == sum([1 for i, j in zip(l1, l2) if i == j]):
return "Equal"
else:
return "Non equal"
l1 = [1, 2, 3]
l2 = [2, 1, 3]
print("First comparison", compareList(l1, l2))
l3 = [1, 2, 3]
l4 = [1, 2, 3]
print("Second comparison", compareList(l3, l4))
আউটপুট
First comparison Non equal Second comparison Equal
উপরের উদাহরণে, প্রথম তুলনায় দুটি লিস্টের ডেটা আইটেম সমান হলেও এলিমেন্টগুলোর অর্ডার ভিন্ন। তাই প্রথম তুলনা "Non equal" রিটার্ন করেছে।
== অপারেটর ব্যবহার করা (সর্ট ছাড়া)
এটি প্রথম পদ্ধতির সংশোধিত সংস্করণ। এখানে লিস্টগুলো সর্ট ছাড়াই সরাসরি তুলনা করা হয়, তাই এই পদ্ধতিতে লিস্টের ডেটা আইটেমগুলোর অর্ডার বিবেচনা করা হয়।
উদাহরণ
def compareList(l1, l2):
if l1 == l2:
return "Equal"
else:
return "Non equal"
l1 = [1, 2, 3]
l2 = [2, 1, 3]
print("First comparison", compareList(l1, l2))
l3 = [1, 2, 3]
l4 = [1, 2, 3]
print("Second comparison", compareList(l3, l4))
আউটপুট
First comparison Non equal Second comparison Equal
এই পদ্ধতিগুলো পাইথনে লিস্ট তুলনা করার জন্য ব্যবহৃত হয়, যেখানে কিছু পদ্ধতি এলিমেন্টের অর্ডার বিবেচনা করে এবং কিছু করে না।