课程
/后端开发
/Python
/python进阶
搞不懂变成大写后返回-1,1,0跟排序有什么关系
2016-10-19
源自:python进阶 2-7
正在回答
因为sorted函数,会对1,-1,0这三个返回的值进行排序。比如一个list里面[10,2,8],sorted函数先把 10和2 比较,结果10>2,则返回 1 ,这样sorted函数接收到了1之后就知道要把2放到10前面做个排序了。同样,对于字符串也是这样,全部转换成了大写之后就可以直接比较unicode码的大小来进行排序了
丶子非鱼 提问者
sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数的定义是, 传入两个待比较的元素 x, y, 如果 x 应该排在 y 的前面,返回 -1, 如果 x 应该排在 y 的后面,返回 1。 如果 x 和 y 相等,返回 0。 如下: [10,2,11,8,8] {10>2}-->|Y| {10>11}-->|N| {11>8}-->|Y| {11>8}-->11=1 最大 {10>2}-->|Y| {10>8}-->|Y| {10>8}-->10=1 第二大 {2>8}-->|N| {8>8}--> 相等就返回0 最小的 2=-1
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计