set(list_of_objects)
केवल डुप्लिकेट निकाल देंगे, कि है, आप एक वस्तु की एक विशिष्टता को परिभाषित करने की आवश्यकता होगी।
ऐसा करने के लिए, आपको ऑब्जेक्ट को हर्षनीय बनाने की आवश्यकता होगी। आप दोनों __hash__
और __eq__
विधि परिभाषित करने की जरूरत है, तो यहां है:
http://docs.python.org/glossary.html#term-hashable
हालांकि, तो आप शायद ही __eq__
विधि को परिभाषित करने की आवश्यकता होगी।
संपादित: __eq__
विधि लागू करना सीखें:
आप जानते हैं, करना होगा, जैसा मैंने कहा, अपने वस्तु की विशिष्टता परिभाषा। मान लीजिए कि हमारे पास विशेषता लेखक_नाम और शीर्षक है जिसमें उनका संयोजन अद्वितीय है, (इसलिए, हमारे पास स्टीफन किंग की कई किताबें हो सकती हैं, और द शाइनिंग नाम की कई किताबें हो सकती हैं, लेकिन स्टीफन किंग द्वारा द शाइनिंग नामक केवल एक पुस्तक), फिर कार्यान्वयन इस प्रकार है:
def __eq__(self, other):
return self.author_name==other.author_name\
and self.title==other.title
इसी तरह, यह मैं कभी कभी कैसे लागू __hash__
विधि है:
def __hash__(self):
return hash(('title', self.title,
'author_name', self.author_name))
आप देख सकते हैं कि आप एक ही लेखक और शीर्षक, किताब के साथ 2 पुस्तकों की एक सूची बनाते हैं ऑब्जेक्ट्स वही होंगे (is
ऑपरेटर के साथ) और बराबर (==
ऑपरेटर के साथ)। साथ ही, जब set()
का उपयोग किया जाता है, तो यह एक पुस्तक को हटा देगा।
संपादित: यह मेरा एक वर्ष anwser है, लेकिन मैं केवल अब नोटिस यह त्रुटि जो पिछले पैराग्राफ में स्ट्राइकथ्रू के साथ ठीक किया जाता है कि: एक ही hash()
साथ वस्तुओं True
नहीं देंगे जब is
के साथ तुलना में । ऑब्जेक्ट की हैशबिलिटी का उपयोग किया जाता है, हालांकि, यदि आप सेट के तत्वों के रूप में या शब्दकोश में कुंजी के रूप में उनका उपयोग करना चाहते हैं।
चरण 1. खोजें। यह सटीक शब्द पाइथन प्रोग्रामिंग कक्षा में प्रत्येक सेमेस्टर का उपयोग किया जाता है। कृपया खोजें –
__ मूल__ को छोड़कर, इसका क्या अर्थ है? क्योंकि अगर आपने कहा कि आप सूची के ऑर्डर__ को __maintain करना चाहते हैं तो सूची में डुप्लिकेट ऑब्जेक्ट की पहली घटना मूल अधिकार होगी? – mouad
हाँ, मेरा मतलब है कि मैं मूल को छोड़कर सभी डुप्लिकेट को हटाना चाहता हूं। @ एसएलॉट, मैंने एक टन खोजा और मुझे कुछ भी नहीं मिला, इसलिए मैं यहां आया था। क्या आप एक उदाहरण उद्धृत कर सकते हैं जो इस सटीक समस्या का समाधान करे? मुझे यह देखकर खुशी होगी। – imns