सूची से डुप्लीकेट तत्वों को हटाना, एक प्रक्रिया जिसे डीडुप्लिकेशन कहा जाता है, पायथॉन में एक सामान्य कार्य है। सबसे अच्छा तरीका इस बात पर निर्भर करता है कि क्या आपको तत्वों के मूल क्रम को संरक्षित करने की आवश्यकता है। यह लेख दो कुशल विधियों का पता लगाता है: एक गति को प्राथमिकता देता है और दूसरा क्रम को संरक्षित करता है।
विषय सूची
सूची का डीडुप्लिकेशन (अक्रमित)
ऐसी स्थितियों के लिए जहां तत्वों का क्रम महत्वपूर्ण नहीं है, पायथॉन के अंतर्निहित set
प्रकार का उपयोग सबसे तेज़ समाधान प्रदान करता है। सेट स्वाभाविक रूप से केवल अद्वितीय तत्वों को संग्रहीत करते हैं। किसी सूची को सेट में बदलने और फिर से सूची में बदलने से डुप्लीकेट प्रभावी रूप से हटा दिए जाते हैं।
my_list = [1, 2, 2, 3, 4, 4, 5, 1]
unique_list = list(set(my_list))
print(unique_list) # आउटपुट: [1, 2, 3, 4, 5] (क्रम भिन्न हो सकता है)
यह विधि की संक्षिप्तता और दक्षता सेट संचालन की अनुकूलित प्रकृति से उपजी है। हालांकि, ध्यान रखें कि आउटपुट सूची का क्रम मूल से भिन्न हो सकता है।
सूची का डीडुप्लिकेशन (क्रमित)
मूल क्रम को बनाए रखने के लिए थोड़े अधिक जटिल दृष्टिकोण की आवश्यकता होती है। हम सूची के माध्यम से पुनरावृति करेंगे, एक सेट का उपयोग करके देखे गए तत्वों को ट्रैक करेंगे। केवल अभी तक सामना नहीं किए गए तत्वों को एक नई सूची में जोड़ा जाता है।
my_list = [1, 2, 2, 3, 4, 4, 5, 1]
seen = set()
unique_list = []
for item in my_list:
if item not in seen:
unique_list.append(item)
seen.add(item)
print(unique_list) # आउटपुट: [1, 2, 3, 4, 5] (मूल क्रम संरक्षित)
यह विधि एक बार पुनरावृति करती है, कुशल O(1) औसत-केस लुकअप के लिए seen
सेट का उपयोग करती है, जिससे बड़ी सूचियों के लिए भी अच्छा प्रदर्शन सुनिश्चित होता है। मुख्य लाभ मूल क्रम का संरक्षण है।
सही विधि चुनना:
जब मूल क्रम को संरक्षित करना महत्वपूर्ण हो तो दूसरी विधि (क्रमित) को प्राथमिकता दें। यदि क्रम महत्वहीन है, तो पहली विधि (अक्रमित) बेहतर गति और सादगी प्रदान करती है। अत्यधिक बड़ी सूचियों के लिए जहां प्रदर्शन सर्वोपरि है और क्रम महत्वपूर्ण नहीं है, सेट-आधारित दृष्टिकोण स्पष्ट विजेता है।