Suppression des doublons des listes d'objets en Python
Problème :
Vous devez supprimer les doublons objets d'une liste tout en préservant l'ordre et en vérifiant les chevauchements d'enregistrements de base de données.
Solution :
Pour supprimer les doublons d'une liste d'objets, vous pouvez utiliser le dans la fonction set(). Cependant, cela nécessite que les objets soient hachables.
Définition du hachage pour les objets :
Pour rendre les objets hachables, définissez les méthodes __eq__ et __hash__. La méthode __eq__ détermine si deux objets sont égaux, tandis que la méthode __hash__ calcule une valeur de hachage pour l'objet.
Exemple d'implémentation de hachage :
Pour un objet Book avec author_name et les attributs de titre, la méthode __eq__ pourrait être implémentée comme :
<code class="python">def __eq__(self, other): return self.author_name == other.author_name and self.title == other.title</code>
Et la méthode __hash__ pourrait être implémentée comme :
<code class="python">def __hash__(self): return hash(('title', self.title, 'author_name', self.author_name))</code>
Vérification des chevauchements de bases de données :
Pour vérifier les chevauchements avec la base de données, effectuez les étapes suivantes :
Conservation de l'ordre :
La fonction set() supprime les éléments en double mais ne préserve pas l'ordre. Pour conserver l'ordre, utilisez list(set(myList)).
Notes supplémentaires :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!