দুটি লিস্টে একই ইন্ডেক্সে অবস্থিত এলিমেন্টগুলো সমান কিনা এবং সেগুলো কোনো নির্দিষ্ট চেক লিস্টে আছে কিনা যাচাই করার জন্য enumerate() এবং ইটারেশন ব্যবহার করা হয়।
উদাহরণ
list1 = [12, 62, 19, 79, 58, 0, 99]
list2 = [12, 74, 19, 54, 58, 0, 11]
check_list = [9, 8, 2]
print("লিস্ট ১:", list1)
print("লিস্ট ২:", list2)
print("চেক লিস্ট:", check_list)
# সর্ট করা (ঐচ্ছিক, মূল লজিক পরিবর্তন করে)
list1.sort()
list2.sort()
print("সর্ট করা লিস্ট ১:", list1)
print("সর্ট করা লিস্ট ২:", list2)
# যাচাই
result = True
for idx, val in enumerate(list1):
if list1[idx] != list2[idx] and val in check_list:
result = False
break
print("\nফলাফল:")
if result:
print("ইন্ডেক্স এলিমেন্ট লিস্ট এলিমেন্টের সমান")
else:
print("ইন্ডেক্স এলিমেন্ট লিস্ট এলিমেন্টের সমান নয়")
আউটপুট
লিস্ট ১: [12, 62, 19, 79, 58, 0, 99]
লিস্ট ২: [12, 74, 19, 54, 58, 0, 11]
চেক লিস্ট: [9, 8, 2]
সর্ট করা লিস্ট ১: [0, 12, 19, 58, 62, 79, 99]
সর্ট করা লিস্ট ২: [0, 11, 12, 19, 54, 58, 74]
ফলাফল: ইন্ডেক্স এলিমেন্ট লিস্ট এলিমেন্টের সমান
লজিক ব্যাখ্যা
সর্ট করার পর:
- ইন্ডেক্স ০: ০ == ০ ✓
- ইন্ডেক্স ১: ১২ != ১১ কিন্তু ১২ চেক লিস্টে নেই ✓
- ইন্ডেক্স ২: ১৯ != ১২ কিন্তু ১৯ চেক লিস্টে নেই ✓
- ...
কোনো মিসম্যাচই চেক লিস্টে নাই, তাই ফলাফল True।
সরলীকৃত পাইথনিক সংস্করণ
# zip দিয়ে একসাথে ইটারেট
mismatches = [(a, b) for a, b in zip(list1, list2) if a != b]
has_bad_mismatch = any(val in check_list for val, _ in mismatches)
print("মিসম্যাচগুলো:", mismatches)
print("চেক লিস্টে আছে কি?", has_bad_mismatch)
zip ব্যবহার করা ज्यादा পঠনযোগ্য এবং দ্রুত।