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

为什么执行报错了?

为什么报错了http://img2.sycdn.imooc.com/5e833c540001a62612590593.jpg

2020-03-31 源自:python进阶 2-7 220 浏览 4 回答

最佳回答

2020-03-31
from functools import cmp_to_key


def cmp(x,y):
    if x>y:
        return -1
    elif x<y:
        return 1
    else:
        return 0
result = sorted([1,3,5,2,0,4,9],key=cmp_to_key(cmp))
print(result)

版本问题 python3之后取消了你这种用法,新版本的自定义排序方法如上所示

weixin_慕工程2249056 (提问者)

懂了,就说为啥一直不对,按你写的那样执行是没有问题 👍👍​
#1 2020-04-01

慕桂英9269908

可以的,新版本的python 指定函数只能有一个参数,把函数本身当作一个参数引入就好了,果然python的编程就是函数式编程。
#2 2020-05-29

还是不对啊,数字排序正确梦幻成字符串就不行了啊

2020-04-21
0

慕婉清2180903

def cmp_ignore_case(s1, s2): if s1[0].upper() > s2[0].upper(): return 1 if s1[0].upper() < s2[0].upper(): return -1 return 0 print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)
#1 2020-05-14

只接受一个参数的函数,这个cmp函数有x,y两个参数,这个课比较老了,你改成key=str.lower或者key=str.title。不要在用函数做参数

2020-05-16
0

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信