为了账号安全,请及时绑定邮箱和手机立即绑定

比较函数,返回值和sorted()有什么关系

定义了比较函数,比较了大小,有返回值,有什么用

正在回答

4 回答

比较函数的定义是:传入两个待比较的元素x、y,如果x应排在y的前面返回-1,如果x应排在y的后面返回1.如果x、y相等返回0.这个记住就行。至于你想让x排在y前面还是后面,按大到小排还是小到大排,就要自己定义返回值是1还是-1.。比较函数根据返回值-1排序就是xy,返回值是1就是yx(我的理解应该是这样的)

0 回复 有任何疑惑可以回复我~

sorted()是用来比较“比较函数”的返回值的,比较函数返回值-1,0,1 。sorted()按照-1,0,1大小关系小的排左边排序。比较函数是比较传入的list的两个元素的大小返回比较值

0 回复 有任何疑惑可以回复我~

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’]

0 回复 有任何疑惑可以回复我~

如果x应该排在y之前则返回-1

翻译返回1

如果x=y则返回0

(这里x,y指自定义排序函数接受的s1,s2)

0 回复 有任何疑惑可以回复我~
#1

hzCN

反之返回1,笔误
2019-07-20 回复 有任何疑惑可以回复我~
#2

慕妹3474603 提问者 回复 hzCN

那定义的s1,s2和sorted()里面的元素有什么关系呢
2019-07-23 回复 有任何疑惑可以回复我~
#3

hzCN 回复 慕妹3474603 提问者

sorted接受两个参数,一个list,一个自定义排序函数。s1,s2只是我们在自定义函数中定义的实参,list中的元素会传入自定义排序函数中做为s1,s2存在。
2019-08-04 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

比较函数,返回值和sorted()有什么关系

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信