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

为什么在python3上运行不了

def cmp_ignore_case(s1, s2):

    if s1.lower() < s2.lower():

        return -1

    if s1.lower() > s2.lower():

        return 1

    return 0    

print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)


正在回答

2 回答

python3  更改了这个方法,函数只能有一个参数,两个参数是不允许的

def cmp(x):

    return x .upper()

print (sorted(['bob', 'about', 'Zoo', 'Credit'],key=cmp,reverse=False))

这个其实是返回了一个比较的元素,比如你要比较  字符串中第二个字符  那你就return str1[1],将第二个元素返回,就会比较第二个元素的大小,reverse是设置顺序还是倒叙

我说的不则么好,不过应该你能看懂


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

qq_木鱼_14 提问者

非常感谢!
2017-09-17 回复 有任何疑惑可以回复我~

Help on built-in function sorted in module builtins:


sorted(iterable, /, *, key=None, reverse=False)

    Return a new list containing all items from the iterable in ascending order.


    A custom key function can be supplied to customize the sort order, and the

    reverse flag can be set to request the result in descending order.


查了一下python3的sorted函数签名好像改掉了。也就是说不支持你的这种写法了。

随便说一下help的帮助并不是看得很懂。第二第三个参数/ *是什么鬼 描述里面都没有提到。谁知道的回我一下

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

举报

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

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

进入课程

为什么在python3上运行不了

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