問題タブ [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.

0 投票する
0 に答える
386 参照

python - __hash__ を使用せずにオブジェクトのリストで重複を削除する方法

重複を削除したいカスタム オブジェクトのリストがあります。通常、これを行うには、オブジェクトに対して と の両方__eq__を定義してから、オブジェクトのリストの を取得します。を定義しましたが、等しいオブジェクトに対して同じ値を返すように実装する良い方法がわかりません。__hash__set__eq____hash__

より具体的には、 ete3 ツールキットTreeのクラスから派生したクラスがあります。ロビンソン-フォールズ距離がゼロの場合、2 つのオブジェクトは等しいと定義しました。

どちらも12print len(trees)print len(set(trees))返しますが、いくつかのオブジェクトが互いに等しいため、それは私が望むものではありません。

戻り値:

だから私の質問は次のいずれかです:

  • __hash__それが機能するように、私の場合に適した実装は何でしょうset(trees)か?
  • __hash__または、定義せずにリストから等しいオブジェクトを削除するにはどうすればよいですか?
0 投票する
0 に答える
35 参照

python - 空の ete3.Tree オブジェクトを newick 形式のツリー文字列で正しく更新する方法 [Python]?

から継承するクラスを作成していete3.Treeます。フォーマットされた文字列をオブジェクトに追加したいのですがnewick、オブジェクトを更新する正しい方法がわかりません。 私はt2以下を同じ構造にしたいと思います。構造によって、私が行ったようにオブジェクトをt1構築しますが、空のオブジェクトから構築するのと同じであることを意味します。t2t1ete3.Tree

これどうやってするの?それらが同じハッシュではないことは理解していますが、_children属性は 2 つのインスタンス間で異なって見えます。