Python sorted() 函数
来源:互联网 发布:mac充电指示灯不亮了 编辑:程序博客网 时间:2024/05/28 17:04
廖雪峰Python教程 sorted部分笔记
排序也是在程序中经常用到的算法。无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小。如果是数字,我们可以直接比较,但如果是字符串或者两个dict呢?直接比较数学上的大小是没有意义的,因此,比较的过程必须通过函数抽象出来。
Python内置的sorted()
函数就可以对list进行排序:
>>> sorted([36, 5, -12, 9, -21])[-21, -12, 5, 9, 36]
此外,sorted()
函数也是一个高阶函数,它还可以接收一个key
函数来实现自定义的排序,例如按绝对值大小排序:
>>> sorted([36, 5, -12, 9, -21], key=abs)[5, 9, -12, -21, 36]
key指定的函数将作用于list的每一个元素上,并根据key函数返回的结果进行排序。对比原始的list和经过key=abs
处理过的list:
list = [36, 5, -12, 9, -21]keys = [36, 5, 12, 9, 21]
笔记要点:
sorted函数,针对的对象是list内的元素!不是整个list,所以,在key=函数这个应用时,是直接作用于元素对象上,并非list上!!!
我们来看下面的课后练习
以下list做出2道题,1:按照名字排列 2:按照分数排列
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
第一题:
def by_name(t):
return t[0] # 这里返回的t[0],并不是list的0号位置元素,而是list内元素的0号位置,所以,他指向的是('Bob',75)的0号位
L1 = sorted(L,key=by_name)
print (L1)
第二题
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
def by_score(t):
return t[1]
L2 = sorted(L,key=by_score)
print (L2[::-1]) #我是在最后进行了反转,但是看了别人的程序后,其实可以在sorted里面一步完成,因为sorted函数不光可以用key,在key指代函 数的后面,还可以添加reverse=True ,所以以下程序更优化。
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
def by_score(t):
return t[1]
L2 = sorted(L, key=by_score, reverse=True)
print (L2)
- python sorted函数使用说明
- Python的sorted函数
- python中sorted()函数
- 【Python】 sorted函数
- Python sorted函数
- python sorted()函数解析
- python sorted函数
- python内置函数 sorted
- python sorted()函数
- Python sorted() 函数
- 【Python】 sorted函数
- python sorted函数
- python 中sorted()函数
- 【Python】 sorted函数
- python sorted函数
- 【Python】 sorted函数
- Python 排序函数sorted
- Python sorted 函数
- 套接字的select模型
- MySQL 日期格式化
- [随笔]不要问我fastcall是什么
- 【JavaScript】初识JavaScript
- JAVA利用Apache Poi读取Excel文件
- Python sorted() 函数
- java 时间戳
- 1005. Spell It Right (20)解题思路
- 为什么TCP要设MSS?
- Range——移动内容extractContents()
- 异常处理
- 管理指定验证方式的私有角色
- Android 4.0以上Flash播放!
- 剑指offer(六十一)之字符串的排列