List 按自定义顺序对列表排序

List 按自定义顺序对列表排序,list,python-3.x,intervals,List,Python 3.x,Intervals,我想使用自定义顺序对列表进行排序,但在转换为键时遇到困难(在Python3中,不再有sort(L,cmp=…)) 我在安排时间间隔:I_k=[a_k,b_k]。命令如下: I_k>I_l (if a_k>a_l) OR (if a_k=a_l and b_k<=b_l) I_k>I_l(如果a_k>a_l)或(如果a_k=a_l和b_k最好的方法是创建一个具有小于比较函数的区间类 class Interval(list): __gt__ = __ge__ = __le

我想使用自定义顺序对列表进行排序,但在转换为键时遇到困难(在Python3中,不再有
sort(L,cmp=…)

我在安排时间间隔:
I_k=[a_k,b_k]
。命令如下:

I_k>I_l (if a_k>a_l) OR (if a_k=a_l and b_k<=b_l)

I_k>I_l(如果a_k>a_l)或(如果a_k=a_l和b_k最好的方法是创建一个具有小于比较函数的区间类

class Interval(list):
    __gt__ = __ge__ = __le__ = NotImplemented
    def __init__(self, l):
        self.extend(l)
    def __lt__(self, other):
        print('help')
        a_l, b_l = self
        a_k, b_k = other
        return a_k>a_l or (a_k==a_l and b_k<=b_l)

L = [[0,1], [2,3], [0,2]]
L = sorted(map(Interval, L))

print(L) # [[0, 2], [0, 1], [2, 3]]
课程间隔(列表):
__gt\uuuuu=未实施
定义初始化(self,l):
自我扩展(l)
定义(自身、其他):
打印(“帮助”)
a_l,b_l=自我
a_k,b_k=其他
返回a_k>a_l或(a_k==a_l和b_k