sort函数是快速排序吗,快速排序和sort

  sort函数是快速排序吗,快速排序和sort

  列表存储一串数字,如“21”

  ,如何按数值大小排序得到新的列表?

  l=[1 , 3 , 2 , 32 , 1 , 453 , 232]l.sort(key = int) # key = int,只按照数值大小进行比较from运算符导入itemgetter,attrgetter

  S=[(约翰,甲,15),(快乐期待,乙,12),(戴夫,乙,10),]

  打印itemgetter(0,2)

  打印排序的(s,key=itemgetter(2))

  从运算符导入itemgetter,attrgetter

  d={ 数据1:3,数据2:1,数据3:2,数据4:4}

  打印数据项()

  print sorted(d . ITER items(),key=itemgetter (0)) #根据元组的第一项排序,这里是dictionary的键。

  print sorted(d . ITER items(),key=itemgetter (1)) #根据元组的第二项排序,这里是字典的值。

  Python列表排序

  简要记下python中List的排序方法(或排序内置函数)的用法。

  关键词:

  Python列表排序python字典排序排序

  List的元素可以是各种东西,字符串,字典,自定义类等。

  排序函数的用法如下:

  Python代码

  已排序(数据,cmp=无,键=无,反转=假)

  其中,data是要排序的数据,List或iterator、cmp和key都可以是函数。这两个函数作用于数据的元素产生一个结果,sorted方法根据这个结果进行排序。

  Cmp(e1,e2)是具有两个参数的比较函数。返回值为负数:e1 e2,0: e1==e2,正数:e1 e2。默认值为None,即使用内置的比较函数。

  Key是一个只有一个参数的函数,用于提取每个元素的比较值。默认值为None,即直接比较每个元素。

  一般key和reverse比cmp快很多,因为每个元素只处理一次;Cmp将被多次处理。

  用例子来说明排序的用法:

  1.对元组组成的列表进行排序。

  Python代码

  学生=[(约翰,甲,15),(快乐期待,乙,12),(戴夫,乙,10),]

  按键函数排序(lambda的用法见注1)

  Python代码

  Sorted (students,key=lambdas:s[2])# sortbyage[( Dave , B ,10),(快乐期待, B ,12),( john , A ,15)]

  按cmp功能排序

  Python代码

  Sorted (students,CMP=Lambdax,Y: CMP (X [2],Y[2])#按年龄ASC [(Dave , B ,10),( Happy Expectation , B ,12),( John , A

  Sorted (students,CMP=Lambdax,Y: CMP (Y [2],X[2])# Sortbyagedesc,交换x/y的位置[(john , A ,15),(快乐期待, B ,12),(

  使用operator函数加速,上面的排序等价于:(itemgetter用法见注2)

  Python代码

  学生=[(约翰,甲,15),(快乐期待,乙,12),(戴夫,乙,10),]

  fromoperatorimportitemgetter,attrgettersorted(students,key=itemgetter(2))

  具有运算符功能的多级排序

  Python代码

  Sorted (students,key=itemgetter (1,2))# Sortbygradethanbyage[( John , A ,15),( Dave , B ,10),(快乐期待, B ,12)]

  2.按字典排序

  Python代码

  d={data1:3, data2:1, data3:2, data 4 :4 }排序(d.iteritems(),key=itemgetter(1),reverse=True)[(data4 ,4),( data1 ,3),( data3 ,2),( data2 ,1)]

  从运算符导入itemgetter,attrgetter

  d={ 数据1:3,数据2:1,数据3:2,数据4:4}

  打印数据项()

  print sorted(d . ITER items(),key=itemgetter (0)) #根据字典的键进行排序

  print sorted(d . ITER items(),key=itemgetter (1)) #根据字典的值进行排序

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: