面試題,要求用lambda一句話達到下方效果
foo=[-5,8,0,4,9,-4,-20,-2,8,2,-4]
正數從小到大,負數從大到小
答案:
res=sorted(foo,key=lambda x:(x<0 ,abs(x)))
print(res)
由此展開對lambda的思考,
lambda x:x
等同於
def func(x):
return x
當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)
甚至可以再加一層條件
