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

请问Python3下的这段代码为什么会报错啊?

def cmp_ignore_case(s1, s2):
   r1 = s1.upper()
   r2 = s2.upper()
   if r1 > r2:
       return 1
#        print (r1,r2)
   if r1 < r2:
       return -1
   return 0
print(sorted(['bob', 'about', 'Zoo', 'Credit'], key=cmp_ignore_case,reverse=False))

正在回答

3 回答

Python3,指定的key只接受一个参数,,上面的代码简化成print(sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.upper)),,,当然你也可以指定自定义的cmp函数

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

sorted函数只有两个参数,第一个是list,第二个是一个函数

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

你把 key=删了就成功了。

用key的话,应该写成key=x.name.upper()

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

qq_本大王_0

打错了,key=lambda x:x.upper(),可以反应的是比较的关键字
2018-03-19 回复 有任何疑惑可以回复我~
#2

Lucky_lda 提问者

python3中需要key关键字,这样的语法
2018-03-29 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

请问Python3下的这段代码为什么会报错啊?

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号