Python 高阶函数sorted总结

  • 对于Python内置函数sorted(),先拿来跟list(列表)中的成员函数list.sort()进行下对比。在本质上,list的排序和内置函数sorted的排序是差不多的,连参数都基本上是一样的。
  • 主要的区别在于,list.sort()是对已经存在的列表进行操作,进而可以改变进行操作的列表。而内置函数sorted返回的是一个新的list,而不是在原来的基础上进行的操作.
  • list.reverse(),与reversed()同理
  • 基本用法
>>>sorted((1,4,8,9,3,6), reverse=True)
Out[36]: [9, 8, 6, 4, 3, 1]
reverse=True 为降序
  • 高阶用法
    处理二维或多维元素
l=[('a', 1), ('b', 2), ('c', 6), ('d', 4), ('e', 3)]
对元组索引为0降序
>>>sorted(l, key=lambda x:x[0], reverse=True)
Out[40]: [('e', 3), ('d', 4), ('c', 6), ('b', 2), ('a', 1)]
对元组索引为1降序
>>>sorted(l, key=lambda x:x[1], reverse=True)
Out[41]: [('c', 6), ('d', 4), ('e', 3), ('b', 2), ('a', 1)]
  • 小结,列表里面的每一个元素都为二维元组,key参数传入了一个lambda函数表达式,其x就代表列表里的每一个元素,然后分别利用索引返回元素内的第一个和第二个元素,这就代表了sorted()函数利用哪一个元素进行排列。而reverse参数就如同上面讲的一样,起到逆序的作用。默认情况下,reverse参数为False。

  • 相关的题以及答案

# 排序前[7,-8,5,4,0,-2,-5]
# 排序后[0,4,5,7,-2,-5,-8]
lst=[7,-8,5,4,0,-2,-5]
print(sorted(lst,key=lambda x:(x<0,abs(x))))
1. sorted已经提前进行升序 格式为:[-8, -5, -2, 0, 4, 5, 7]
2. 通过传入的x判断,x小于0在前,正数在后
d={"a":26,"g":20,"e":20,"c":24,"d":23,"f":21,"b":25}
print(sorted(d.items(),key=lambda x:x[1],reverse=True))
这里对字典的values进行降序
  • d.items(),获取的是以元组的形式组成的每一个键值对,然后匿名函数里的通过x[1]索引字典的值,进行降序操作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值