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

大神们看看为什么错了

import functools


sorted_ignore_case = functools.partial(sorted,lambda x,y :cmp(x.lower(),y.lower()))


print sorted_ignore_case(['bob', 'about', 'Zoo', 'Credit'])


正在回答

2 回答

偏函数表达式f1= functools.partial(f, x),其中x是f的参数。

查看sorted()函数:sorted(iterable, cmp=None, key=None, reverse=False),

iterable:是可迭代类型;
cmp:用于比较的函数,比较什么由key决定;
key:用列表元素的某个属性或函数进行作为关键字,有默认值,迭代集合中的一项;
reverse:排序规则. reverse = True  降序 或者 reverse = False 升序,有默认值。

所以你需要在lambda x,y :cmp(x.lower(),y.lower())前面加上cmp=lambda x,y :cmp(x.lower(),y.lower())即可成功运行。

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

925755208

为什么我改为x=lambda x,y :cmp(x.lower(),y.lower())不行啊?
2018-09-14 回复 有任何疑惑可以回复我~
#2

梦游病者 回复 925755208

x不是sorted()函数里的参数名,这里是对cmp进行了修改
2019-05-06 回复 有任何疑惑可以回复我~

参考int2=functools.partial(int, base=2)

而sorted_ignore_case = functools.partial(sorted,lambda x,y :cmp(x.lower(),y.lower()))中

sorted相当于int,lambda x,y :cmp(x.lower(),y.lower())相当于2,少了base=。加上cmp= 就可以了



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

举报

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

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

进入课程

大神们看看为什么错了

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