栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python 列表自定义排序_python按顺序排列?

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python 列表自定义排序_python按顺序排列?

Python自定义排序规则:functools.cmp_to_key() 使用场景

fuctools.cmp_to_key()是用来自定义排序规则,类似于C++中的lambada函数一样,使得sort()函数可以按照自己定义的比较规则进行排序。

使用规则

以剑指offer45题为例:

def cmp(a, b):
    if a + b > b + a:
        return 1
    elif a + b < b + a:
        return -1
    else:
        return 0

当使用nums.sort(key = functools.cmp_to_key(cmp))调用时,将nums按照从小到大的顺序排列。

由以上例子可知,cmp中定义的规则就相当于是通过key参数告诉函数sort()如何对两个数进行比较,让它清楚什么样的条件是“大”,什么样的条件是“小”。
注意:定义这个排序规则只是为了让sort()明白如何得到两个数中较“大”的那个,与数组最后是“从小到大”排序还是“从大到小”排序没有关系。sort()如何排序是由第二个参数reverse来确定的。

nums.sort(key = functools.cmp_to_key(cmp), reverse = True) # 数组nums按照从“大”到“小”的顺序排列
nums.sort(key = functools.cmp_to_key(cmp), reverse = False) # 数组nums按照从“小”到“大”的顺序排列
nums.sort(key = functools.cmp_to_key(cmp)) # 不写时,默认是按照从“小”到“大”的顺序排列
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/783152.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号