Python のオブジェクト リストから重複を削除する
問題:
重複を削除する必要があります順序を保持し、データベース レコードの重複をチェックしながら、リストからオブジェクトを削除します。
解決策:
オブジェクトのリストから重複を削除するには、ビルトインset()関数内。ただし、これにはオブジェクトがハッシュ可能である必要があります。
オブジェクトのハッシュの定義:
オブジェクトをハッシュ可能にするには、__eq__ メソッドと __hash__ メソッドの両方を定義します。 __eq__ メソッドは 2 つのオブジェクトが等しいかどうかを判断し、__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 中国語 Web サイトの他の関連記事を参照してください。