有点蒙啊。。
sorted函数是怎么判断升序还是降序的,和cmp那个函数有什么关系,谁能帮我讲解一下,谢谢
sorted函数是怎么判断升序还是降序的,和cmp那个函数有什么关系,谁能帮我讲解一下,谢谢
2016-07-28
cmp()这个函数是用来比较两个对象的,比如cmp(x,y),当x > y的时候函数返回1,x < y就返回-1,x == y就返回0啊,就这样的,然后像这个sorted_ignore_case = functools.partial(sorted, cmp=lambda s1, s2: cmp(s1.upper(), s2.upper())),这个语句里面比价s1和s2的大写字母的ascll码的大小(假设这里的s1和s2是字符串,一般比较比较字符串的第一个字符),接着就是理解sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数(这里自定义的比较函数是cmp())的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1(函数cmp的()的返回值),如果 x 应该排在 y 的后面,返回 1(函数cmp的()的返回值)。如果 x 和 y 相等,返回 0(函数cmp的()的返回值)。所以这里如果s1 > s2的话s1就排s2后面
举报