python之自定义排序函数sorted()

sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0

def custom_sort(x,y):
    if x>y:
        return -1
    if x<y:
        return 1
    return 0

print sorted([2,4,5,7,3],custom_sort)  

在python3以后,sort方法和sorted函数中的cmp参数被取消,此时如果还需要使用自定义的比较函数,那么可以使用cmp_to_key函数。将老式的比较函数(comparison function)转化为关键字函数(key function)。与接受key function的工具一同使用(如 sorted(), min(), max(), heapq.nlargest(), itertools.groupby())。该函数主要用来将程序转成 Python 3 格式的,因为 Python 3 中不支持比较函数。

def custom_sorted(x,y):
    if x>y:
        return -1
    if x<y:
        return 1
    return 0

print(sorted([2,3,1,5,4],key=cmp_to_key(custom_sorted)))

原文地址:https://www.cnblogs.com/xuxianshen/p/10257380.html

时间: 2024-10-14 20:56:18

python之自定义排序函数sorted()的相关文章

python中自定义排序函数

Python内置的 sorted()函数可对list进行排序: >>>sorted([36, 5, 12, 9, 21]) [5, 9, 12, 21, 36] 但 sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1.如果 x 和 y 相等,返回 0. 因此,如果我们要实现倒序排序,只需要编写一个reversed_cmp函数: de

python 自定义排序函数

自定义排序函数 Python内置的 sorted()函数可对list进行排序: >>>sorted([36, 5, 12, 9, 21]) [5, 9, 12, 21, 36] 但 sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1.如果 x 和 y 相等,返回 0. 因此,如果我们要实现倒序排序,只需要编写一个reversed_c

python 中的高级函数sorted()

Python内置的 sorted()函数可对list进行排序: >>>sorted([36, 5, 12, 9, 21]) [5, 9, 12, 21, 36] 但 sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1.如果 x 和 y 相等,返回 0. 因此,如果我们要实现倒序排序,只需要编写一个reversed_cmp函数: de

Python应用——自定义排序全套方案

本文始发于个人公众号:TechFlow,原创不易,求个关注 今天的这篇文章和大家聊聊Python当中的排序,和很多高级语言一样,Python封装了成熟的排序函数.我们只需要调用内部的sort函数,就可以完成排序.但是实际场景当中,排序的应用往往比较复杂,比如对象类型,当中有多个字段,我们希望按照指定字段排序,或者是希望按照多关键字排序,这个时候就不能简单的函数调用来解决了. 字典排序 我们先来看下最常见的字典排序的场景,假设我们有一个字典的数组,字典内有多个字段.我们希望能够根据字典当中的某一个

十四、Python的自定义排序 以及两种排序方式

data_list = [] data_list.append({'softname':'1','version':'1.2.2.2'}) data_list.append({'softname':'7','version':'1.2.2.2'}) data_list.append({'softname':'5','version':'1.2.2.2'}) data_list.append({'softname':'2','version':'1.2.2.2'}) data_list.appen

MySQL自定义排序函数FIELD()

MySQL可以通过field()函数自定义排序,格式:field(value,str1,str2,str3,str4),value与str1.str2.str3.str4比较,返回1.2.3.4,如遇到null或者不在列表中的数据则返回0. mysql> select * from driver_log order by field(name,'Suzi','Ben','Henry'); +--------+-------+------------+-------+ | rec_id | nam

python几个排序函数 sort sorted argsort

Python中排序常用到的sort .sorted和argsort函数 [摘要:Python中sort 战 sorted函数 一 .先容 sort函数是list列表中的函数,而 sorted能够对list或iterator举行排序 2.sort战sorted的比拟 1.用sort函数对列表排序时会影响列表自身,而sorted没有会 举例] Python中sort 和 sorted函数    一.介绍 sort函数是list列表中的函数,而sorted可以对list或者iterator进行排序 二

Java当中自定义排序函数

一.实现Comparator接口 方法类似Merge two sorted list中介绍的,包括了有名类和匿名类两种方式 具体使用: 排序: Collections.sort(容器,comparator) Queue q = new PriorityQueue(capacity,comparator) 二.comparable 抽象类

Problem D: 指针:调用自定义排序函数sort,对输入的n个数进行从小到大输出。

#include<stdio.h> int sort(int *p,int n) { int i,j,temp; for(i=0;i<n-1;i++) for(j=i;j<n;j++) if(p[i]>p[j]) { temp=p[i]; p[i]=p[j]; p[j]=temp; } } int main() { int n,a[100],i; while(scanf("%d",&n)!=EOF) { for(i=0;i<n;i++) sc