पायथन से एकल तत्व को हटाना इंडेक्स और del फंक्शन का उपयोग करके सीधा है। लेकिन ऐसे परिदृश्य हो सकते हैं जब हमें इंडेक्स के एक समूह के लिए तत्वों को हटाने की आवश्यकता हो। यह लेख उन दृष्टिकोणों का पता लगाता है जिनसे केवल उन तत्वों को सूची से हटाया जाए जो इंडेक्स सूची में निर्दिष्ट हैं।
sort और del का उपयोग
इस दृष्टिकोण में हम उन इंडेक्स मानों वाली एक सूची बनाते हैं जहां हटाना होना है। फिर हम उन्हें क्रमबद्ध करते हैं और उल्टा करते हैं ताकि सूची के तत्वों का मूल क्रम संरक्षित रहे। अंत में हम उन विशिष्ट इंडेक्स बिंदुओं के लिए मूल दी गई सूची पर del फंक्शन लागू करते हैं।
उदाहरण
Alist = [11, 6, 8, 3, 2]
# इंडेक्स सूची
idx_list = [1, 3, 0]
# मूल सूची प्रिंट करना
print("दी गई सूची है : ", Alist)
# इंडेक्स सूची प्रिंट करना
print("इंडेक्स सूची है : ", idx_list)
# del और sorted() का उपयोग
for i in sorted(idx_list, reverse=True):
del Alist[i]
# परिणाम प्रिंट करें
print("हटाए गए तत्वों के बाद सूची : ", Alist)
आउटपुट
उपरोक्त कोड चलाने पर निम्न परिणाम मिलता है -
दी गई सूची है : [11, 6, 8, 3, 2] इंडेक्स सूची है : [1, 3, 0] हटाए गए तत्वों के बाद सूची : [8, 2]
सॉर्टिंग और रिवर्स के बाद idx_list [0,1,3] बन जाता है। इसलिए केवल इन स्थितियों के तत्व हटाए जाते हैं।
enumerate और not in का उपयोग
हम ऊपर दिए गए प्रोग्राम को enumerate और फॉर लूप के अंदर not in क्लॉज का उपयोग करके भी देख सकते हैं। परिणाम ऊपर जैसा ही है।
उदाहरण
Alist = [11, 6, 8, 3, 2]
# इंडेक्स सूची
idx_list = [1, 3, 0]
# मूल सूची प्रिंट करना
print("दी गई सूची है : ", Alist)
# इंडेक्स सूची प्रिंट करना
print("इंडेक्स सूची है : ", idx_list)
# स्लाइसिंग और not in का उपयोग
Alist[:] = [j for i, j in enumerate(Alist) if i not in idx_list]
# परिणाम प्रिंट करें
print("हटाए गए तत्वों के बाद सूची : ", Alist)
आउटपुट
उपरोक्त कोड चलाने पर निम्न परिणाम मिलता है -
दी गई सूची है : [11, 6, 8, 3, 2] इंडेक्स सूची है : [1, 3, 0] हटाए गए तत्वों के बाद सूची : [8, 2]