代码环境:python3.6

两者简单对比如下:

  1. list.sort是原列表排序,而sorted会返回新列表;
  2. 可选参数keyreverse的意义和用法都一样。

reverse 用法最简单,reverse=True时降序输出,reverse=False时升序输出。这个参数的默认值是False

key 是一个函数,我们可以用 python 内置函数或自定义函数,让序列按我们想要的方式进行排序,下面我们用代码感受一下:

In [1]: a_list = [36, 5, -12, 9, -21]In [2]: b_list = [36, 5, -12, 9, -21]In [3]: sorted(a_list)
Out[3]: [-21, -12, 5, 9, 36]In [4]: a_list
Out[4]: [36, 5, -12, 9, -21]# 按映射后的绝对值排序
In [5]: sorted(a_list, key=abs)
Out[5]: [5, 9, -12, -21, 36]In [6]: b_list.sort()In [7]: b_list
Out[7]: [-21, -12, 5, 9, 36]In [8]: c_list = ['bob', 'about', 'Zoo', 'Credit']In [9]: sorted(c_list)
Out[9]: ['Credit', 'Zoo', 'about', 'bob']# 忽略大小写,按字母顺序排序
In [10]: sorted(c_list, key=str.lower)
Out[10]: ['about', 'bob', 'Credit', 'Zoo']# 按字符串长度排序
In [11]: sorted(c_list, key=len)
Out[11]: ['bob', 'Zoo', 'about', 'Credit']

上面我们只用了key是内置函数的情况,下面用另一个例子看看key是自定义函数的用法。

给出一个列表L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)],列表中每个元素包括了学生的姓名和成绩。要求:

  1. 按名字排序;
  2. 按成绩从高到低排序。
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]def order_by_name(arg_tuple):# 元组参数传进来直接映射为元祖的第1个元素,返回进行对比return arg_tuple[0]def order_by_score(arg_tuple):# 元组参数传进来直接映射为元祖的第2个元素,返回进行对比return arg_tuple[1]if __name__ == "__main__":print('默认排序结果:{}'.format(sorted(L)))print('按姓名排序结果:{}'.format(sorted(L, key=order_by_name)))print('按成绩排序结果:{}'.format(sorted(L, key=order_by_score, reverse=True)))# 运行结果:
# 默认排序结果:[('Adam', 92), ('Bart', 66), ('Bob', 75), ('Lisa', 88)]
# 按姓名排序结果:[('Adam', 92), ('Bart', 66), ('Bob', 75), ('Lisa', 88)]
# 按成绩排序结果:[('Adam', 92), ('Lisa', 88), ('Bob', 75), ('Bart', 66)]

list排序sort降序_list.sort和高阶函数sorted相关推荐

  1. python高阶函数——sorted排序算法

    python高阶函数--sorted排序算法 python 内置的sorted()函数可以对一个list进行排序: >>> sorted([8,3,8,11,-2]) [-2, 3, ...

  2. python按照绝对值排序_Python高阶函数sorted排序

    sorted用法 sorted是Python提供的功能强大的排序函数.满足字符,数字等排序要求. 对数字进行排序: list = [-12, -2, -24, 20, 39, 10]; print(s ...

  3. [小结] js sort() 排序 - 升序/降序/中文拼音排序

    常规 sort() 排序 - 升序 / 降序 var array = [1,2,6,5,4,3]; var resultArray = array.sort(function(param1, para ...

  4. python中sort返回值_Python函数你真的都学会了吗?来看看这篇Python高阶函数!

    二.高阶函数 高级函数, 英文叫 Higher-order Function. 那么什么是高阶函数呢? 在说明什么是=高阶函数之前, 我们需要对函数再做进一步的理解! 2.1 函数的本质 函数的本质是 ...

  5. Swift 基础 高阶函数 forEach filter map compactMap compactMapValues flatMap reduce sort sorted shuffled ...

    一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹.靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络,希 ...

  6. C++ sort 排序(降序、升序)使用总结

    一.升序 C++ sort 函数十分方便,可以对内置类型也可对自定义类型进行快速排序,内置类型的使用比较简单,下面主要讨论自定义类型的排序,一般有如下几种使用方法: 1.1 重载比较操作符 比如,我们 ...

  7. js 数组对象sort()排序(升序降序)

    升序 let testArr = [{ name: 'tom', age: '12' },{ name: 'marry', age: '17' },{ name: 'xxx', age: '14' } ...

  8. 对list集合排序升序和降序使用sort()

    Collections.sort(resultList, new Comparator<HealthRecordRepeat>() { @Override public int compa ...

  9. Matlab进行升序降序,matlab sort()升序和降序

    B = sort(A) %沿着输入参量 A的不同维的方向.从小到大重新排列 A中的元素.A 可以是字符串的.实数的.复数的单元数组.对于 A 中完全相同的元素,则按它们在 A 中的先后位置排列在一块: ...

  10. oracle order by 排序之降序 null 排最后

    1 表数据person_info id   name  age 1    qq       23 2    ee       null 3     rr        8 2  按照年龄排序: (1) ...

最新文章

  1. 论文笔记 | CNN 是怎么学到图片绝对位置信息的
  2. 7 Papers Radios | Transformer自动debug;AI合成舞蹈落地应用
  3. 域名CNAME 概念
  4. 如何让企业引起对网站运营优化的重视程度呢?
  5. 对10亿个数据去重java_20 亿个数字在 4G 内存中如何去重排序:快来试一试 BitMap...
  6. mask rcnn属于dnn么_基于OpenCV DNN的 MaskRCNN 目标检测与实例分割
  7. 在android中使用opencv,在安卓上使用OpenCV的指南 - kdnuggets
  8. 【你好,windows】windows7 x64x86旗舰完整版(带驱动包usb3.0_nvme)2020.1.22
  9. c51单片机时钟c语言程序设计,AT89C51单片机为核心的时钟电路的程序设计
  10. HTML页面跳转的5种方法分析介绍
  11. 最新图解 FileZilla Server + FlashFXP 快速傻瓜式搭建FTP服务 1
  12. 最短路算法c++(dijsktra,floyd,spfa)
  13. Metasploit Framework(3)Meterpreter
  14. 工业制造中的UWB定位技术
  15. [转]多普达818、828+升级中文WM6.1及必装软件全过程讲解
  16. html显示ping值,jquery JS实现ping的功能(JS ping url)
  17. 机器学习项目实战——15Kmeans算法之NBA球队实力聚类分析
  18. Web前端持续集成方案(四)
  19. 图片服务器FastDFS的安装及使用
  20. 机器视觉系列(一)——概述

热门文章

  1. tracert查网络问题
  2. Python时间处理完全手册
  3. rebar3 的使用
  4. Webstorm配置svn【window系统】
  5. Excel连接到MySQL,将Excel数据导入MySql,MySQL for Excel,,
  6. EmEditor中正则表达式
  7. Android的Crash日志记录
  8. 代码笔记——Toast显示文本,图片,图文
  9. java静态分页_Javaweb分页
  10. Android的异步多线程消息处理机制