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

为什么最后提示错误呢?

为什么最后提示错误呢?

海绵宝宝撒 2022-11-19 17:13:38
虽然3.x中没有了cmp()函数,是不是可以自定义,然后再把它作为参数提供给sort,进行排序,但是最后提示错误。一、代码如下:# -*- coding:utf-8 -*-numbers=[2,4,9,45,21,1,4,7,]def cmp(x,y):if x>y:return 1elif x==y:return 0else:return -1print(cmp(42,79))numbers.sort(cmp)print(numbers)二、错误提示如下: numbers.sort(cmp)TypeError: must use keyword argument for key functionPS:经测试,print(cmp(42,79))可以正常返回数值,说明自定义cmp()函数没有问题。新手无知,求指教!
查看完整描述

1 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

numbers.sort这种用法是错误的,如果你想要排序,则用如下语句:
num_sort=sorted(numbers,key=None,reverse=False)
新的list num_sort才是一个排序后的列表。然后,你自定义的cmp过程只能对比两个数字,而能对比列表中的各个元素,python3解释器不知道你要做什么,所以才会出错。

查看完整回答
反对 回复 2022-11-22
  • 1 回答
  • 0 关注
  • 60 浏览
慕课专栏
更多

添加回答

举报

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