Python中cmp函数怎么用
什么是cmp函数
cmp是Python2.x中的一个内置函数,用来比较两个参数的大小。它接受两个参数,如果第一个参数小于第二个参数就返回-1,如果第一个参数等于第二个参数就返回0,如果第一个参数大于第二个参数就返回1。
用法示例
以下是cmp函数的用法示例:
>>> a = 1
>>> b = 2
>>> print cmp(a,b)
-1
>>> a = 2
>>> b = 1
>>> print cmp(a,b)
1
>>> a = 2
>>> b = 2
>>> print cmp(a,b)
0
cmp函数不推荐使用
在Python3.x中,cmp函数被移除了。因为在Python3.x中,比较两个不同类型的对象没有明确的一致规则,这使得cmp函数的实现变得比较困难。为了保持语言的简洁性和一致性,Python3.x移除了cmp函数,推荐使用其他函数替代。
在Python2.x中,如果需要比较序列类型的对象,可以使用Python的内置函数max和min。在使用时,max和min会自动比较序列中的元素,返回序列中最大或最小的元素:
>>> a = [1,2,3,4]
>>> print max(a)
4
>>> print min(a)
1
其他比较函数
除了max和min函数,Python还提供了许多其他比较函数,如sorted函数、list.sort函数、heapq.nlargest函数和heapq.nsmallest函数等。
sorted函数用于对序列进行排序,可以自定义排序规则。示例如下:
>>> a = [1,3,2,4]
>>> print sorted(a)
[1, 2, 3, 4]
>>> a = [(1,'a'),(3,'c'),(2,'b')]
>>> print sorted(a, key=lambda x:x[1])
[(1, 'a'), (2, 'b'), (3, 'c')]
list.sort函数与sorted函数类似,但list.sort会直接对原列表进行排序,而不会返回一个新列表。示例如下:
>>> a = [1,3,2,4]
>>> a.sort()
>>> print a
[1, 2, 3, 4]
heapq.nlargest和heapq.nsmallest是Python提供的用于寻找列表中最小或最大的N个元素的函数。示例如下:
>>> import heapq
>>> a = [1,3,2,4]
>>> print heapq.nlargest(2,a)
[4, 3]
>>> print heapq.nsmallest(2,a)
[1, 2]
总结
虽然cmp函数在Python3.x被移除了,但是Python的其他比较函数还有很多。学会使用这些函数可以让我们更方便快捷地进行列表、元组、字典等数据类型的操作。
![小小茶猫](https://vps.cmy.cn/zb_users/avatar/0.png)
相关文章
评论已关闭