我使用的是python 3.5,我有一个列表c。
当我试图做
时c.sort() ## sort the nodes by count, using the __cmp__ function defined in the node class
我收到错误TypeError: unorderable types: Node() < Node()
你知道如何解决这个问题吗?
答案 0 :(得分:0)
在Python3中,您必须明确定义类的所有比较运算符,以使其可排序:==,!=,&lt;,&lt; =,&gt;和&gt; =:
class Node:
# ...
def __lt__(self, other):
# ...
# same for the other operators
显然这是多余的,您可以通过执行以下任何操作来减少复制/粘贴。
namedtuple
,在这种情况下,将按字典顺序对实例进行比较。total_ordering