关闭

Python(八)用sorted排序

104人阅读 评论(0) 收藏 举报
分类:

说起排序,前面应该有大概说道list.sort () , 这是一个成员函数,

而sorted是一个迭代器,

前者是在原有序列基础上排序, 而后者是生成一个新的序列;

并且sorted可以接受一个key来重新定义函数的排序规则(就是cmp)

比如官方给出的例子,对一句话进行去空格排序,

sorted("This is a test string from Andrew".split(), key=str.lower) #输入
['a', 'Andrew', 'from', 'is', 'string', 'test', 'This']  #结果


再者 ,如果对一个tuple排序该如何呢 ; 先来解释一下tuple;

students_tuple = [ ('jack'  , 15 ) , ('nick' , 20 ) ] 

就如同C语言中的结构体一样, 所以他们的cmp书写也显得大同小异了; 

struct node //*C语言表达方式
{
    int age ;
    char name ; 
}a[500]

对他构造cmp的时候, 

bool cmp (node a , node b)
{
    retyurn a.age < b.age ; 
}

而在python3中,

def by_name(t):
    return t[0].lower()
L=[('Dob',75),('Adam',92),('Bart',66),('Cisa',88)]
L1 = sorted(L,key=by_name)
print(L1)

t[0] 就指的是 对名字排序 , 则t[1] 其实就是对年龄排序;

def by_scort(t):
    return t[1]
L=[('Bob',75),('Adam',92),('Bart',66),('Lisa',88)]
L1=sorted(L,key=by_scort,reverse = True)
print(L1)   
这里的reverse指的是是否对sort后的序列逆序, 即从大到小 ; 

PS:和cmp函数使用一样, sort(a,a+n,cmp)  ,这里在调用key的时候也不会带上后面的传参;



0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Python中sort、sorted高级排序技巧

在python中对list进行排序有两种方法: 1.用List的成员函数sort进行排序 2.用built-in函数sorted进行排序 sorted与sort除了一个是序列作为参数,一个是序列调用...
  • hduxiejun
  • hduxiejun
  • 2017-02-22 20:14
  • 965

python排序函数sort()与sorted()区别

sort是容器的函数:sort(cmp=None, key=None, reverse=False) sorted是python的内建函数:sorted(iterable, cmp=None, key...
  • zyl1042635242
  • zyl1042635242
  • 2015-01-25 16:58
  • 7049

Python的排序:关于sort()与sorted()

list.sort()list的一个方法,具有三个参数:cmp,key,reverse(Python3只有后两个) 一个list调用sort方法后,对该list进行排序,不保存原list - 参数...
  • qq_15714857
  • qq_15714857
  • 2016-01-19 22:14
  • 2824

python的sorted函数对字典按key排序和按value排序

1.sorted函数按key值对字典排序     先来基本介绍一下sorted函数,sorted(iterable,key,reverse),sorted一共有iterable,key,revers...
  • u011534057
  • u011534057
  • 2017-01-10 15:16
  • 799

Python3自定义key函数排序

Python2中的**自定义布尔函数cmp=custom_cmp(x, y)**由Python3中的**key=custom_key(x)**代替。 在python3中,待比较元素x通过custom...
  • jason_cuijiahui
  • jason_cuijiahui
  • 2017-05-26 16:47
  • 2198

java8新特性-sorted排序

在排序之前,首先要搞清楚以下概念。 Stream Stream 不是集合元素,它不是数据结构并不保存数据,它是有关算法和计算的,它更像一个高级版本的 Iterator。原始版本的 Iter...
  • zhuyuehui99
  • zhuyuehui99
  • 2017-05-24 17:38
  • 1576

Python中排序常用到的sort 、sorted和argsort函数

Python中sort 和 sorted函数    一、介绍 sort函数是list列表中的函数,而sorted可以对list或者iterator进行排序 二、sort和sort...
  • xiaopihaierletian
  • xiaopihaierletian
  • 2016-09-19 20:53
  • 516

Python中的排序函数argsort,sort,sorted用法

argsort()函数 >>> x = np.array([3, 1, 2]) >>> np.argsort(x) #按升序排列 array([1, 2, 0]) >>> np.argsort(-x...
  • shengmingqijiquan
  • shengmingqijiquan
  • 2016-11-02 17:41
  • 2592

Swift实现的快速排序及sorted方法的对比

Swift语言有着优秀的函数式编程能力,面试的时候面试官都喜欢问我们快速排序,那么用Swift如何实现一个快速排序呢?首先扩展Array类:extension Array { var deco...
  • cg1991130
  • cg1991130
  • 2015-09-07 22:28
  • 4060

sorted()排序详解

http://wiki.python.org/moin/HowTo/Sorting?highlight=%28howto%29#The_Old_Way_Using_the_cmp_Parameter ...
  • my2010Sam
  • my2010Sam
  • 2013-09-04 17:18
  • 6935
    个人资料
    • 访问:99652次
    • 积分:4211
    • 等级:
    • 排名:第8404名
    • 原创:332篇
    • 转载:3篇
    • 译文:1篇
    • 评论:11条
    最新评论