問題タブ [ete3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - __hash__ を使用せずにオブジェクトのリストで重複を削除する方法
重複を削除したいカスタム オブジェクトのリストがあります。通常、これを行うには、オブジェクトに対して と の両方__eq__
を定義してから、オブジェクトのリストの を取得します。を定義しましたが、等しいオブジェクトに対して同じ値を返すように実装する良い方法がわかりません。__hash__
set
__eq__
__hash__
より具体的には、 ete3 ツールキットTree
のクラスから派生したクラスがあります。ロビンソン-フォールズ距離がゼロの場合、2 つのオブジェクトは等しいと定義しました。
どちらも12print len(trees)
をprint len(set(trees))
返しますが、いくつかのオブジェクトが互いに等しいため、それは私が望むものではありません。
戻り値:
だから私の質問は次のいずれかです:
__hash__
それが機能するように、私の場合に適した実装は何でしょうset(trees)
か?__hash__
または、定義せずにリストから等しいオブジェクトを削除するにはどうすればよいですか?
python - 空の ete3.Tree オブジェクトを newick 形式のツリー文字列で正しく更新する方法 [Python]?
から継承するクラスを作成していete3.Tree
ます。フォーマットされた文字列をオブジェクトに追加したいのですがnewick
、オブジェクトを更新する正しい方法がわかりません。 私はt2
以下を同じ構造にしたいと思います。構造によって、私が行ったようにオブジェクトをt1
構築しますが、空のオブジェクトから構築するのと同じであることを意味します。t2
t1
ete3.Tree
これどうやってするの?それらが同じハッシュではないことは理解していますが、_children
属性は 2 つのインスタンス間で異なって見えます。