कभी-कभी हमें दो पायथन सूचियों में तत्वों की तुलना उनके मूल्य और स्थिति या सूचकांक दोनों के संदर्भ में करने की आवश्यकता हो सकती है। इस लेख में हम देखेंगे कि दो सूचियों में एक ही स्थिति में तत्वों का पता कैसे लगाया जाए जो उनके मूल्य से मेल नहीं खाते।
लूप के लिए उपयोग करना
हम समान अनुक्रमित पर मानों की तुलना करने के लिए लूप के लिए डिज़ाइन कर सकते हैं। Id मान मेल नहीं खाते हैं तो हम परिणाम सूची में अनुक्रमणिका जोड़ते हैं। लूप के लिए पहले पहली अनुक्रमणिका में मान प्राप्त करता है और फिर दूसरी सूची के मानों के साथ तुलना करने के लिए if स्थिति का उपयोग करता है।
उदाहरण
listA= [13, 'Mon',23, 62,'Sun']
listB = [5, 'Mon',23, 6,'Sun']
# index variable
idx = 0
# Result list
res = []
# With iteration
for i in listA:
if i != listB[idx]:
res.append(idx)
idx = idx + 1
# Result
print("The index positions with mismatched values:\n",res) आउटपुट
उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -
The index positions with mismatched values: [0, 3]
ज़िप के साथ
जब हम प्रत्येक इंडेक्स के तत्वों की तुलना करते हैं तो ज़िप फ़ंक्शन हमें एक छोटा कोड लिखने में मदद करता है। अनुक्रमणिका मान उन स्थितियों के लिए कैप्चर किए जाते हैं जहां तत्व का मान मेल नहीं खाता।
उदाहरण
listA= [13, 'Mon',23, 62,'Sun']
listB = [5, 'Mon',23, 6,'Sun']
res = [listB.index(n) for m, n in
zip(listA, listB) if n != m]
# Result
print("The index positions with mismatched values:\n",res) आउटपुट
उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -
The index positions with mismatched values: [0, 3]
गणना के साथ
यह ज़िप फ़ंक्शन में दृष्टिकोण के समान है, सिवाय इसके कि यहां सूची में से किसी एक में एन्यूमरेट फ़ंक्शन लागू करते समय हमारे पास प्रत्येक तत्व और अनुक्रमणिका के माध्यम से जाने के लिए लूप है।
उदाहरण
listA= [13, 'Mon',23, 62,'Sun']
listB = [5, 'Mon',23, 6,'Sun']
res = [idx for idx, elem in enumerate(listB)
if elem != listA[idx]]
# Result
print("The index positions with mismatched values:\n",res) आउटपुट
उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -
The index positions with mismatched values: [0, 3]