课程
/后端开发
/Python
/python进阶
定义了比较函数,比较了大小,有返回值,有什么用
2019-07-20
源自:python进阶 2-7
正在回答
比较函数的定义是:传入两个待比较的元素x、y,如果x应排在y的前面返回-1,如果x应排在y的后面返回1.如果x、y相等返回0.这个记住就行。至于你想让x排在y前面还是后面,按大到小排还是小到大排,就要自己定义返回值是1还是-1.。比较函数根据返回值-1排序就是xy,返回值是1就是yx(我的理解应该是这样的)
sorted()是用来比较“比较函数”的返回值的,比较函数返回值-1,0,1 。sorted()按照-1,0,1大小关系小的排左边排序。比较函数是比较传入的list的两个元素的大小返回比较值
sorted是python内置的排序函数,也可作为高阶函数和其他函数配合使用,举个例子:
lst = ['ccc', 'aaaaaa', 'ff', 'd'] # 根据字符长短进行排序 print(sorted(lst, key=lambda n: len(n)))
结果为: [‘d’, ‘ff’, ‘ccc’, ‘aaaaaa’]
返回值的作用如
lst = ['ccc', 'aaaaaa', 'ff', 'd'] def func(n): return len(n) print(sorted(lst, key=func))
结果也是: [‘d’, ‘ff’, ‘ccc’, ‘aaaaaa’]
如果x应该排在y之前则返回-1
翻译返回1
如果x=y则返回0
(这里x,y指自定义排序函数接受的s1,s2)
hzCN
慕妹3474603 提问者 回复 hzCN
hzCN 回复 慕妹3474603 提问者
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计