python2的比较函数,cmp
2024-08-21 01:31:05
class Shu(object):
def __init__(self,ss):
self.ss = ss def __str__(self):
return '(%s: %s)' % (self.name, self.score)
__repr__ = __str__ def __cmp__(self, s):
print ('func __cmp__ work')
if self.ss < s.ss:
return -1
elif self.ss > s.ss:
return 1
else:
return 0 a=Shu(3)
b=Shu(2)
c=a>b#运行a.__cmp__(b),c为True
d=cmp(a,b)#运行a.__cmp__(b),d为1,注意d与上面c类型不同,cmp返回的是0,-1,1
python2的比较函数是cmp.cmp调用的是对象的__cmp__方法,字符串,整数,列表等对象都内置该方法。
而给列表排序的函数sorted,也是通过cmp函数确定两个元素的大小关系,然后再利用插入排序的改进版的(与插入排序原理相同,不同的是,插入排序插入时是从已排序部分的最后一个元素进行比较,而这个是从中间进行比较)算法完成排序,返回排好序的一个新的列表。但注意,他并不改变原列表
但是在pyhon3的比较函数已经不是cmp了
最新文章
- NSCalendar NSDateComponents
- System Center的一些资料收集
- java的技术调用栈图示例
- 【UER #1】跳蚤OS(Trie)
- hdu-3046-Pleasant sheep and big big wolf(最大流最小割)
- 【POJ3006】Dirichlet&#39;s Theorem on Arithmetic Progressions(素数筛法)
- SMART rule之个人理解
- 房费制 它 结账BUG
- shared_ptr注意点
- Password
- Keep Mind Working
- git本机服务器配置(二):TortoiseGit的安装
- BEX5下实现鼠标滚动滚动条
- python修炼第三天
- C++实现程序单实例运行的两种方式
- C# print2flash3文件转化
- Java版 家政服务 社区服务 家装服务平台 源码 有案例 可定制
- FastReport 保存为文件
- 如何指定一个和你的Android应用程序相适配的屏幕配置
- python--文件I/O--11