我是Python的新手,因此问题,
我有以下列表项列表,
[[0, 1], [2,3], [1,2], [4, 5], [3, 5]]
我想按递增顺序对此列表进行排序,首先比较每个列表的第二项,然后是第一项
这是我的代码,
def sorting(a, b):
if a[1] > b[1]:
return 1
elif a[1] == b[1]:
if a[0] > b[0]:
return 1
else:
return -1
else:
return 1
但是有人可以帮我用lambda和comprehensions的sort函数重写它。
答案 0 :(得分:1)
您可以在排序查看订单时撤消订单。只是不要改变原始列表项。
排序(l,key = lambda x:(x [1],x [0]))
答案 1 :(得分:0)
你应该使用Python的内置sorted()
方法,它已经支持lambda比较。
l = [[0, 1], [2,3], [1,2], [4, 5], [3, 5]]
l = sorted(l, cmp=sorting)
如果您想以您所谈论的方式进行排序,那么您的比较功能是错误的。没有返回零的情况,底部return 1
应为return -1
。还有缩进错误。