我是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的排序函数重写这个代码?
发布于 2016-08-18 03:32:18
当排序查看它们时,您可以颠倒顺序。只要不改变原来的列表项即可。
已排序(l,key=lambda x:(x1,x))
发布于 2016-08-18 03:28:34
你应该使用Python内置的sorted()方法,它已经支持λ比较了。
l = [[0, 1], [2,3], [1,2], [4, 5], [3, 5]]
l = sorted(l, cmp=sorting)如果您想要以您所说的方式进行排序,那么您的比较函数是错误的。没有返回零的情况,底部的return 1应该是return -1。还有缩进错误。
https://stackoverflow.com/questions/39004687
复制相似问题