2016-11-12 12 views
0

私はPython 3.5を使用していますが、リストがあります。with c.sort()TypeError:順序付け不可能な型:Node()<Node()

私は

c.sort() ## sort the nodes by count, using the __cmp__ function defined in the node class 

をやろうとしている私は、あなたがこの問題を解決する方法を知っていますかエラーにTypeError: unorderable types: Node() < Node()

を取得しますか? python3で

答えて

0

あなたは明示的にそれをソート可能にするために、クラスのすべての比較演算子を定義するには次の条件を満たす必要があります!==、=、<、< =、>および> =:

class Node: 
    # ... 

    def __lt__(self, other): 
     # ... 

    # same for the other operators 

明らかにこれはあります冗長な場合は、次のいずれかを実行してコピー/ペーストを減らすことができます。

  1. クラスをnamedtupleにします。この場合、インスタンスは辞書編集で比較されます。
  2. 比較演算子を1つ定義して、クラスを修飾してください。total_ordering
関連する問題