【Python函数】——sort,sorted

1、sorted和sort的常规使用

2、关于自定义比较函数

3、试验

from functools import cmp_to_key
ll = [(2,3,10),(1,2,3),(5,6,7),(2,5,10),(2,4,10)]

# 根据一个维度进行排序,这里根据第一维排序
ll1 = sorted(ll,key = lambda x:x[0])
print('根据一个维度进行排序,这里根据第一维排序:\n',ll1)#[(1, 2, 3), (2, 3, 10), (2, 5, 10), (2, 4, 10), (5, 6, 7)]

# 同时对两个维度进行排序,排序方式相同,降序或者升序,这是先排序第一个数,再在第一个数有序的情况下,对第二个数进行排序
ll2 = sorted(ll,key=lambda x:(x[0],x[1]))
print('同时对两个维度进行排序,排序方式相同,降序或者升序:\n',ll2)# [(1, 2, 3), (2, 3, 10), (2, 4, 10), (2, 5, 10), (5, 6, 7)]

# 自定义key函数
def compare(x,y):
	if x < y: # 就是两个数进行比较,要是返回为正数,则交换位置,所以这里是当x<y是返回整数,所以是降序操作
		return 1
	elif x > y:
		return -1
	else:
		return 0
ll3 = sorted(ll,key = cmp_to_key(compare)) # 应用到所有维度上,效果如上面所示
print('自定义降序key函数对所有维度使用:\n',ll3)# [(5, 6, 7), (2, 5, 10), (2, 4, 10), (2, 3, 10), (1, 2, 3)]

ll4 = sorted(ll,key = cmp_to_key(lambda x,y:compare(x[2],y[2])))
print('lambda对所有维度降序使用:\n',ll4)# [(5, 6, 7), (2, 5, 10), (2, 4, 10), (2, 3, 10), (1, 2, 3)]

结果:

根据一个维度进行排序,这里根据第一维排序:
 [(1, 2, 3), (2, 3, 10), (2, 5, 10), (2, 4, 10), (5, 6, 7)]
同时对两个维度进行排序,排序方式相同,降序或者升序:
 [(1, 2, 3), (2, 3, 10), (2, 4, 10), (2, 5, 10), (5, 6, 7)]
自定义降序key函数对所有维度使用:
 [(5, 6, 7), (2, 5, 10), (2, 4, 10), (2, 3, 10), (1, 2, 3)]
lambda对所有维度降序使用:
 [(2, 3, 10), (2, 5, 10), (2, 4, 10), (5, 6, 7), (1, 2, 3)]

4、问题

怎么对一个维度降序,然后再这个维度顺序不变的情况下,对另一个维度实现升序???

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有情怀的机械男

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值