python中sort()方法的cmp参数是什么

小编给大家分享一下python中sort()方法的cmp参数是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

创新互联专业为企业提供乐业网站建设、乐业做网站、乐业网站设计、乐业网站制作等企业网站建设、网页设计与制作、乐业企业网站模板建站服务,十载乐业做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

“如果希望元素能按照特定的方式进行排序(而不是sort函数默认的方式,即根据python的默认排序规则按升序排列元素),那么可以通过compare(x,y)的形式自定义比较函数。

compare(x,y)函数会在xy时返回正数,如果x=y则返回0(根据你的定义)。

定义好该函数之后,就可以提供给sort方法作为参数了。内建函数cmp提供了比较函数的默认实现方式:

对于sort()方法,如果不传入参数,默认cmp为None,即numbers.sort()=number,sort(cmp)=number.sort(cmp=None),我们可以做一个验证:

如果传入参数,numbers.sort(cmp=1),我们可以验证一下,整型的参数可不可以:

代码报错:int对象不是一个callable,可调用对象。callable(object) 方法用来检测对象是否可被调用,即是否是一个函数,如果是则调用该函数的值,赋值给cmp。

那么我们如何自定义一个比较函数呢?

其中的规律就是:两两比较,如果返回为正,则交换两者的位置,即y在前x在后,否则x在前y在后。也可以这样解释,升序就是拿第一个数比对后面的数,降序就是拿最后一个数比对前面的数。

当然,也可以写作numbers.sort(mycmp1),省略cmp。

我们还可以直接穿入匿名函数lambda:

另外,python3.x中取消了cmp参数,也不支持直接往sort()里面传函数,但可以构造排序函数传递给key来实现。

以上是“python中sort()方法的cmp参数是什么”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


新闻名称:python中sort()方法的cmp参数是什么
文章链接:http://abwzjs.com/article/pcdcsg.html