जब किसी सरणी के डुप्लिकेट तत्वों को प्रिंट करने की आवश्यकता होती है, तो सूची के तत्वों पर पुनरावृत्ति की जाती है और एक नेस्टेड लूप (nested loop) का उपयोग किया जाता है।
उदाहरण
my_list = [1, 2, 5, 6, 8, 9, 3, 4, 8, 9, 1, 8]
print("सूची है:")
print(my_list)
print("सूची में डुप्लिकेट तत्व हैं: ")
for i in range(0, len(my_list)):
for j in range(i+1, len(my_list)):
if(my_list[i] == my_list[j]):
print(my_list[j])
आउटपुट
सूची है: [1, 2, 5, 6, 8, 9, 3, 4, 8, 9, 1, 8] सूची में डुप्लिकेट तत्व हैं: 1 8 8 9 8
व्याख्या
एक सूची परिभाषित की जाती है और तत्वों को कंसोल पर प्रदर्शित किया जाता है।
सूची पर दो बार पुनरावृत्ति की जाती है, और पहले और अगले समवर्ती स्थिति के तत्वों की तुलना की जाती है।
यदि वे मेल खाते हैं, तो उस तत्व को डुप्लिकेट माना जाता है।
इसे कंसोल पर प्रदर्शित किया जाता है।
ध्यान दें
यह दृष्टिकोण O(n²) समय जटिलता वाला है। बड़ी सूचियों के लिए, अधिक कुशल तरीके हैं:
- सेट का उपयोग:
seen = set(); duplicates = [x for x in my_list if x in seen or seen.add(x)] - Counter का उपयोग:
from collections import Counter; [k for k, v in Counter(my_list).items() if v > 1] - सॉर्ट करके: सूची को सॉर्ट करें और फिर आसन्न तत्वों की तुलना करें - O(n log n)
उपरोक्त उदाहरण में प्रत्येक डुप्लिकेट को जितनी बार वह आता है उतनी बार प्रिंट करता है (उदाहरण के लिए, 8 तीन बार आता है तो दो बार प्रिंट होता है)। यदि आपको केवल अद्वितीय डुप्लिकेट चाहिए, तो परिणाम को सेट में बदलें।