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

少了cmp= 为什么不行

sorted_ignore_case = functools.partial(sorted,cmp=lambda s1,s2:cmp(s1.upper(),s2.upper()))


sorted_ignore_case = functools.partial(sorted,         lambda s1,s2:cmp(s1.upper(),s2.upper()))


少了cmp= 为什么不行

正在回答

2 回答

我认为,可以参考:>>> import functools
>>> int2 = functools.partial(int, base=2)       # base是一个函数,其参数取2,即把输入的内容转化成2进制
>>> int2('1000000')
64

这里也一样,cmp是一个函数,其函数里面又包含了一个参数函数,为隐函数lambda,后面部分为参数函数lambda的内容


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

sorted(iterable, key=None, reverse=False) --> new sorted list #Python 3.X

sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list #Python 2.4

cmp是用于比较的函数,key是关键字,reverse是规则,cmp=是指明参数嘛

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

学习攻城狮

但是这个语句里面有没有cmp=都获得一样的结果,怎么回事?print sorted([1, 3, 9, 5, 0], cmp=lambda x,y: -cmp(x,y))
2015-04-29 回复 有任何疑惑可以回复我~
#2

lymo 回复 学习攻城狮

sorted在默认参数的情况下就可以进行排序,当然只是单纯的由小到大的排序,cmp是用来设定一个额外的排序函数,所以只是对数字排序的话直接sorted([1, 3, 9, 5, 0])就可以了,上题是忽略大小写排序,不设定的cmp的话,会直接根据ASCII的大小进行排序
2015-04-30 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

少了cmp= 为什么不行

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