网站地图 | RSS订阅 老铁博客 - 上海SEO优化|上海网站建设|蜘蛛池出租|站群代搭建
你的位置:首页 » 前端脚本 » 正文

sorted,sorted函数

2020-4-22 13:54:4 | 作者:老铁SEO | 0个评论 | 人浏览

  1、首先打开cmd命令提示符,输入指令“ipython”打开python的命令行工具:


  2、在命令行中先定义一个变量number数组,里面写入几个数,并用sorted函数对number排序并将排序的结果赋值给变量a,sorted函数第一个参数是要排序的参数,第二个是固定参数reverse表示倒序,True为开启:


  3、最后打印输出a标量,就是降序输出了:


  sorted函数


  sorted(iterable,cmp,key,reverse)


  参数:iterable可以是list或者iterator;


  cmp是带两个参数的比较函数;


  key是带一个参数的函数;


  reverse为False或者True;


  举例说明


  (1)用cmp函数排序


  >>>list1=[('david',90),('mary',90),('sara',80),('lily',95)]


  >>>sorted(list1,cmp=lambdax,y:cmp(x[0],y[0]))


  [('david',90),('lily',95),('mary',90),('sara',80)]


  >>>sorted(list1,cmp=lambdax,y:cmp(x[1],y[1]))


  [('sara',80),('david',90),('mary',90),('lily',95)]


  (2)用key函数排序


  >>>list1=[('david',90),('mary',90),('sara',80),('lily',95)]


  >>>sorted(list1,key=lambdalist1:list1[0])


  [('david',90),('lily',95),('mary',90),('sara',80)]


  >>>sorted(list1,key=lambdalist1:list1[1])


  [('sara',80),('david',90),('mary',90),('lily',95)]


  (3)用reverse排序


  >>>sorted(list1,reverse=True)


  [('sara',80),('mary',90),('lily',95),('david',90)]


  (4)用operator.itemgetter函数排序


  >>>fromoperatorimportitemgetter


  >>>sorted(list1,key=itemgetter(1))


  [('sara',80),('david',90),('mary',90),('lily',95)]


  >>>sorted(list1,key=itemgetter(0))


  [('david',90),('lily',95),('mary',90),('sara',80)]


  介绍operator.itemgetter函数


  >>>importoperator


  >>>a=[1,2,3]


  >>>b=operator.itemgetter(0)


  >>>b(a)


  1


  operator.itemgetter函数获取的不是值,而是定义了一个函数。


  (5)多级排序


  >>>sorted(list1,key=itemgetter(0,1))


  [('david',90),('lily',95),('mary',90),('sara',80)]


  空间复杂度是O(n)


  sorted3


  如果a=[[1,'3'],[1,'2'],[2,'5'],[2,'4']]


  有两种解决方式:


  方法一:


  将字符串转换为int


  sorted(list,key=lambdax:(x[0],-int(x[1])))


  方法二:


  取字符串的第一个字母进行比较


  s=sorted(a,key=lambdax:(x[0],x[1][0]))


  这个方法当字符串为一串单词时,也有效


  sorted什么意思


  you'resorted


  你是被分配的


  双语例句


  1


  Doesthatmeanyou'regoingtohavecommon-sensereasoningsortedoutinfiveto10years?


  那低劣的你正在五到10年内去在外分类共识推论?


  sorted


  英['sɔ:tɪd]美['sɔ:rtɪd]


  adj.


  分类的,分选的


  v.


  分类,整理(sort的过去式和过去分词);挑选;[计算机](根据指令的模式)把…分类;把…归类(常与with,together连用)

  • 本文来自: 老铁博客,转载请保留出处!欢迎发表您的评论
  • 相关标签:
  • 已有0位网友发表了一针见血的评论,你还等什么?

    必填

    选填

    记住我,下次回复时不用重新输入个人信息

    必填,不填不让过哦,嘻嘻。

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

    相关推荐