Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

पायथन के साथ वस्तु की सूची में डुप्लिकेट निकालें

set(list_of_objects) डुप्लिकेट को केवल तभी हटाएगा जब आप जानते हैं कि डुप्लिकेट क्या है, यानी आपको किसी ऑब्जेक्ट की विशिष्टता को परिभाषित करने की आवश्यकता होगी।

ऐसा करने के लिए, आपको वस्तु को धोने योग्य बनाने की आवश्यकता होगी। आपको __hash__ both दोनों को परिभाषित करने की आवश्यकता है और __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() उपयोग किया जाता है, यह एक पुस्तक को हटा देगा।

संपादित करें :यह मेरा एक पुराना उत्तर है, लेकिन अब मैं केवल यह देखता हूं कि इसमें त्रुटि है जिसे अंतिम पैराग्राफ में स्ट्राइकथ्रू के साथ ठीक किया गया है:समान hash() वाले ऑब्जेक्ट True नहीं देगा जब isसे तुलना की जाती है . ऑब्जेक्ट की हैशबिलिटी का उपयोग किया जाता है, हालांकि, यदि आप उन्हें सेट के तत्वों के रूप में या डिक्शनरी में कुंजियों के रूप में उपयोग करने का इरादा रखते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. वाक्पटु समूह Laravel 5.3 में मान्य SQL क्वेरी के साथ SQLSTATE[42000] बनायें

  2. MySQL के साथ सोलर का उपयोग करना

  3. इंट कॉलम से एक स्ट्रिंग को क्वेरी करना?

  4. एक mysql डीबी में क्रमबद्ध डेटा स्टोर करने के लिए किस कॉलम प्रकार का उपयोग किया जाना चाहिए?

  5. फ्लैटफाइल्स पर MySQL का उपयोग क्यों करें?