list排序sort降序_list.sort和高阶函数sorted
代码环境:python3.6
两者简单对比如下:
list.sort
是原列表排序,而sorted
会返回新列表;- 可选参数
key
和reverse
的意义和用法都一样。
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)]
,列表中每个元素包括了学生的姓名和成绩。要求:
- 按名字排序;
- 按成绩从高到低排序。
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相关推荐
- python高阶函数——sorted排序算法
python高阶函数--sorted排序算法 python 内置的sorted()函数可以对一个list进行排序: >>> sorted([8,3,8,11,-2]) [-2, 3, ...
- python按照绝对值排序_Python高阶函数sorted排序
sorted用法 sorted是Python提供的功能强大的排序函数.满足字符,数字等排序要求. 对数字进行排序: list = [-12, -2, -24, 20, 39, 10]; print(s ...
- [小结] js sort() 排序 - 升序/降序/中文拼音排序
常规 sort() 排序 - 升序 / 降序 var array = [1,2,6,5,4,3]; var resultArray = array.sort(function(param1, para ...
- python中sort返回值_Python函数你真的都学会了吗?来看看这篇Python高阶函数!
二.高阶函数 高级函数, 英文叫 Higher-order Function. 那么什么是高阶函数呢? 在说明什么是=高阶函数之前, 我们需要对函数再做进一步的理解! 2.1 函数的本质 函数的本质是 ...
- Swift 基础 高阶函数 forEach filter map compactMap compactMapValues flatMap reduce sort sorted shuffled ...
一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹.靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络,希 ...
- C++ sort 排序(降序、升序)使用总结
一.升序 C++ sort 函数十分方便,可以对内置类型也可对自定义类型进行快速排序,内置类型的使用比较简单,下面主要讨论自定义类型的排序,一般有如下几种使用方法: 1.1 重载比较操作符 比如,我们 ...
- js 数组对象sort()排序(升序降序)
升序 let testArr = [{ name: 'tom', age: '12' },{ name: 'marry', age: '17' },{ name: 'xxx', age: '14' } ...
- 对list集合排序升序和降序使用sort()
Collections.sort(resultList, new Comparator<HealthRecordRepeat>() { @Override public int compa ...
- Matlab进行升序降序,matlab sort()升序和降序
B = sort(A) %沿着输入参量 A的不同维的方向.从小到大重新排列 A中的元素.A 可以是字符串的.实数的.复数的单元数组.对于 A 中完全相同的元素,则按它们在 A 中的先后位置排列在一块: ...
- oracle order by 排序之降序 null 排最后
1 表数据person_info id name age 1 qq 23 2 ee null 3 rr 8 2 按照年龄排序: (1) ...
最新文章
- 论文笔记 | CNN 是怎么学到图片绝对位置信息的
- 7 Papers Radios | Transformer自动debug;AI合成舞蹈落地应用
- 域名CNAME 概念
- 如何让企业引起对网站运营优化的重视程度呢?
- 对10亿个数据去重java_20 亿个数字在 4G 内存中如何去重排序:快来试一试 BitMap...
- mask rcnn属于dnn么_基于OpenCV DNN的 MaskRCNN 目标检测与实例分割
- 在android中使用opencv,在安卓上使用OpenCV的指南 - kdnuggets
- 【你好,windows】windows7 x64x86旗舰完整版(带驱动包usb3.0_nvme)2020.1.22
- c51单片机时钟c语言程序设计,AT89C51单片机为核心的时钟电路的程序设计
- HTML页面跳转的5种方法分析介绍
- 最新图解 FileZilla Server + FlashFXP 快速傻瓜式搭建FTP服务 1
- 最短路算法c++(dijsktra,floyd,spfa)
- Metasploit Framework(3)Meterpreter
- 工业制造中的UWB定位技术
- [转]多普达818、828+升级中文WM6.1及必装软件全过程讲解
- html显示ping值,jquery JS实现ping的功能(JS ping url)
- 机器学习项目实战——15Kmeans算法之NBA球队实力聚类分析
- Web前端持续集成方案(四)
- 图片服务器FastDFS的安装及使用
- 机器视觉系列(一)——概述