新闻中心
python3.5中cmp怎么用
Python 3.5 中 cmp() 函数已被彻底移除,应使用比较运算符或 functools.cmp_to_key() 替代;自定义排序优先用 key 参数,类比较需实现 lt__、__eq 等富比较方法。

Python 3.5 中 没有 cmp() 函数,它在 Python 3.0 就被彻底移除了。
官方明确说明:cmp() 函数应被视为“已消失”,__cmp__() 特殊方法也不再支持。
所以你不能直接写 cmp(a, b),会报错:
>>> cmp(1, 2) NameError: name 'cmp' is not found
替代方案:用比较运算符或 functools.cmp_to_key
✅ 推荐方式:用 functools.cmp_to_key() 配合 sorted() 或 list.sort()
如果你原本想用 cmp 做自定义排序(比如按绝对值、按字符串长度、按多条件),现在要改写成「返回布尔逻辑」的 key 函数,或用 cmp_to_key 包装旧式比较逻辑。
立即学习“Python免费学习笔记(深入)”;
例如,按绝对值升序排序:
Flex3组件和框架的生命周期 中文WORD版
在整本书中我们所涉及许多的Flex框架源码,但为了简洁,我们不总是显示所指的代码。当你阅读这本书时,要求你打开Flex Builder,或能够访问Flex3框架的源码,跟随着我们所讨论源码是怎么工作及为什么这样做。 如果你跟着阅读源码,请注意,我们经常跳过功能或者具体的代码,以便我们可以对应当前的主题。这样能防止我们远离当前的主题,主要是讲解代码的微妙之处。这并不是说那些代码的作用不重要,而是那些代码处理特别的案例,防止潜在的错误或在生命周期的后面来处理,只是我们当前没有讨论它。有需要的朋友可以下载看看
0
查看详情
from functools import cmp_to_key
def my_cmp(x, y):
if abs(x) < abs(y):
return -1
elif abs(x) == abs(y):
return 0
else:
return 1
nums = [-5, 3, -1, 4]
sorted_nums = sorted(nums, key=cmp_to_key(my_cmp))
print(sorted_nums) # [-1, 3, 4, -5]⚠️ 注意:你的
my_cmp函数语义要和老cmp()一致 —— 返回-1/0/1。
✅ 更简洁的方式:优先用 key 参数(不用 cmp)
大多数场景其实不需要写比较函数,直接用 key 更清晰:
# 按长度排序字符串
words = ['hi', 'hello', 'a']
words.sort(key=len) # ['a', 'hi', 'hello']
# 按第二项排序元组
pairs = [('x', 3), ('y', 1), ('z', 2)]
sorted_pairs = sorted(pairs, key=lambda x: x[1]) # [('y', 1), ('z', 2), ('x', 3)]❌ 不要用 __cmp__ 方法
Python 3 已废弃 __cmp__。自定义类比较应实现富比较方法,如:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __lt__(self, other): # 支持 <
return self.age < other.age
def __eq__(self, other): # 支持 ==
return self.age == other.age这样就能用于 sorted()
和 min() 等函数。
补充:为什么删掉 cmp()?
- 容易混淆(返回 -1/0/1,而不是布尔值)
-
key参数更直观、高效、可读性更强 - 富比较方法(
__lt__,__eq__等)让对象行为更明确、更符合直觉
基本上就这些。不复杂但容易忽略:Python 3 里真没 cmp(),别找它了,用 key 或 cmp_to_key 就对了。
以上就是python3.5中cmp怎么用的详细内容,更多请关注其它相关文章!
# 考试试卷
# 浙江发展营销推广策划方案
# 婚庆行业seo推广案例
# 引流推广电话营销
# 怎么优化企业网站seo
# 布吉网站建设价格表
# 分钟寺网络营销推广方案
# 韩城租房网站建设管理
# 短视频seo优化贴牌
# 拼多多营销推广进阶答案
# 郑州SEO学习好物
# 就能
# 升序
# word
# 中带
# 移除
# 自动生成
# 如果你
# 自定义
# 运算符
# 文档
# elif
# 为什么
# ai
# python
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
蛙漫2台版漫画地址 Manwa2正版网页版链接
中兴Axon42Ultra怎样在文件App筛图_iPhone中兴Axon42Ultra文件App筛图【图片筛选】
随机参数递归函数的基准调用次数与时间复杂度探究
c++如何实现一个简单的ECS框架_c++数据驱动设计与游戏开发
Python多版本共存与虚拟环境管理深度指南
漫蛙漫画网页端入口 漫蛙2官方正版漫画站点
J*a TimerTask文件监控:HashMap状态管理与常见陷阱规避指南
如何使用 Excel 发布器与 Power BI 分享 Excel 洞察
c++如何使用TBB库进行任务并行_c++ Intel线程构建模块
Adobe PDF表单中利用J*aScript解析与格式化日期组件的教程
CSS Flexbox与媒体查询:实现响应式布局中元素的并排与堆叠
PowerPoint如何制作滚动字幕结尾彩蛋_PowerPoint路径动画实现平滑滚动字幕效果
《马克思佩恩3》早期版本曝光 UI设计曾多次调整!
Node.js中HTML按钮与J*aScript函数交互的正确姿势
Log4j Console Appender性能瓶颈与高并发优化策略
抓大鹅解压小游戏 抓大鹅摸鱼解压入口
如何设置Windows Defender的定时扫描_计划任务实现自动杀毒【安全】
Kafka Streams中基于消息头条件过滤消息的实现指南
向日葵客户端怎么进行远程CentOS控制_向日葵客户端远程CentOS控制操作教程
怎么去除衣服上的口红印_生活小妙招教你用酒精轻松擦除
iCloud登录入口网页版 苹果iCloud官网登录
1688商家版怎样分析买家画像精准供货_1688商家版分析买家画像精准供货【供货策略】
内存检查:在VS Code中调试C++时的内存视图
Safari浏览器输入栏卡顿如何解决 Safari搜索建议与缓存清理
怎么在html里运行vbs脚本_html中运行vbs脚本方法【教程】
深入理解Google Cloud Datastore查询:祖先路径与数据一致性
163邮箱注册官网 免费申请163个人邮箱
React Hooks最佳实践:动态组件状态管理的组件化方案
Lar*el头像管理:图片缩放与旧文件删除的最佳实践
钉钉视频会议声音异常如何处理 钉钉会议音频修复技巧
高德地图怎么看全景照片_高德地图全景照片浏览教程
聚水潭ERP登录页面入口 聚水潭ERP官网登录界面
深入理解J*aScript Promise异步执行与微任务队列
抖音网页版企业服务中心登录入口_抖音网页版企业登录平台
Win11怎么查看电脑配置_Win11硬件配置检测工具使用
提升Kafka消费者健壮性:会话超时处理与消息处理语义
sublime如何配置Go语言开发环境_sublime搭建Golang编译运行系统
《北京人工智能产业白皮书(2025)》发布:全年核心产值预计突破 4500 亿元
Win11怎么设置开机NumLock亮 Win11修改注册表InitialKeyboardIndicators值
特斯拉自动驾驶房车计划曝光 原型车将于2027年亮相
一加 Nord 5 隐私权限异常_一加 Nord 5 系统安全优化
哔哩哔哩忘记密码了怎么找回_哔哩哔哩密码找回方法
Golang指针如何与map组合使用_Golang map指针组合实践
单射、满射与双射的关系 一文理清所有逻辑
必由学官网首页入口 必由学教师网页版登录指南
AO3最新镜像入口 Archive of Our Own官方平台访问
浏览器打开即用 美图秀秀网页版入口
mc.js免安装版 mc.js一键畅玩入口
FullCalendar 自定义按钮样式定制指南
俄罗斯Yandex搜索引擎入口_Yandex官网免登录一键访问


2025-12-09
浏览次数:次
返回列表