转载自:
https://www.cnblogs.com/zhaolei1986/p/12711978.html
面试题,要求用lambda一句话达到下方效果
foo=[-5,8,0,4,9,-4,-20,-2,8,2,-4]
正数从小到大,负数从大到小
答案:
foo=[-5,8,0,4,9,-4,-20,-2,8,2,-4]
res=sorted(foo,key=lambda x:(x<0 ,abs(x)))
print(res)
当sorted(foo,key=lambda x:(x<0 ,abs(x)))
会按照x<0,然后abs(x)的顺序来进行sorted
res=sorted(foo,key=lambda x:(x>0 ,x%2,abs(x)))
print(res)
#会按照x<0,然后x%2,最后abs(x)的顺序来进行sorted