从 Python 中的对象列表中删除重复项
问题:
您需要删除重复项从列表中删除对象,同时保留顺序并检查数据库记录重叠。
解决方案:
要从对象列表中删除重复项,您可以使用内置的在 set() 函数中。但是,这要求对象可哈希。
定义对象的哈希:
要使对象可哈希,请定义 __eq__ 和 __hash__ 方法。 __eq__ 方法确定两个对象是否相等,而 __hash__ 方法计算该对象的哈希值。
哈希实现示例:
对于具有author_name的Book对象和 title 属性, __eq__ 方法可以实现为:
<code class="python">def __eq__(self, other): return self.author_name == other.author_name and self.title == other.title</code>
并且 __hash__ 方法可以实现为:
<code class="python">def __hash__(self): return hash(('title', self.title, 'author_name', self.author_name))</code>
检查数据库重叠:
要检查与数据库的重叠,请执行以下步骤:
保留顺序:
set() 函数删除重复元素,但不保留顺序。要保持顺序,请使用 list(set(myList))。
附加说明:
以上是如何从 Python 列表中删除重复对象,同时保留顺序并检查数据库重叠?的详细内容。更多信息请关注PHP中文网其他相关文章!