我们通常会遇到对数据库中的数据进行排序的问题,今天学习一下对列表和字典的排序方法。

列表

第一种:内建方法sort

sort()对列表排序是永久性的排序。

用法:sort(*key=Nonereverse=False)

  • 注意这个reverse。当reverse为True时,代表反向排列;默认为False,正向排列。

举例:

 >>> d = ['', '', '', '', '', '']
>>> d.sort()
>>> d
['', '', '', '', '', '']
>>> d.sort(reverse=True)
>>> d
['', '', '', '', '', '']
第二种:内建函数sorted()

sorted()排序是一种临时性的排序,并不会对列表本身造成影响,其返回的是一个新的列表

用法:sorted(iterable*key=Nonereverse=False)

  • reverse作用同上
  • 与sort不同的是,list.sort()仅仅为list定义;而sorted()适用于所有可迭代
 >>> d = ['', '', '', '', '', '']
>>> d1 = sorted(d)
>>> d1
['', '', '', '', '', '']

字典

现有字典d={'a': 24, 'b': 32, 'c': 12}。分别按照key和value对字典进行排序。字典key以及value的取出分别为d.keys()和d.values()方法。

上面讲了sorted的用法,三个参数:iterable,key,reverse。

第一种:字典按照key倒序排列:

 >>> d1 = sorted(d.items(), key=lambda item:item[], reverse=True)
>>> d1
[('c', ), ('b', ), ('a', )]
>>>
>>> for key, value in d1: # 将其打印出来
... print(key, value)
...
c
b
a

sorted()中的iterable对应d.items()【items方法是将字典的key、value值生成列表,可迭代】,key对应lambda函数表达式,item[0]对应字典的key值,同理按照value排序,也就是item[1]啦;reverse为True,使得反向排序。

第二种:字典按照value正向排列:

 >>> d2 = sorted(d.items(), key=lambda item:item[], reverse=False)
>>> d2
[('c', ), ('a', ), ('b', )]
>>> for key, value in d2:
... print(key, value)
...
c
a
b

扩展一下:

对于一种列表里面包含元组等复杂的数据时,进行排序可以根据对象的属性进行排序。

 >>> student_tuples = [('john', 'A', ), ('jane', 'B', ), ('dave', 'B', )]
>>> sorted(student_tuples, key=lambda student:student[]) # sort by age
[('dave', 'B', ), ('jane', 'B', ), ('john', 'A', )]

python中的sort、sorted排序的更多相关文章

  1. 第8.23节 Python中使用sort/sorted排序与“富比较”方法的关系分析

    一. 引言 <第8.21节 Python中__lt__.gt__等 "富比较"("rich comparison")方法用途探究>和<第8.2 ...

  2. Python中自定义类未定义__lt__方法使用sort/sorted排序会怎么处理?

    在<第8.23节 Python中使用sort/sorted排序与"富比较"方法的关系分析>中介绍了排序方法sort和函数sorted在没有提供key参数的情况下默认调用 ...

  3. python中的sort方法

    Python中的sort()方法用于数组排序,本文以实例形式对此加以详细说明: 一.基本形式 列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不 ...

  4. python中的sort方法使用详解

    Python中的sort()方法用于数组排序,本文以实例形式对此加以详细说明: 一.基本形式 列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不 ...

  5. Python中的sort()

    Python中的sort()方法用于数组排序,本文以实例形式对此加以详细说明: 一.基本形式列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不可 ...

  6. 【转载】C#中自定义Sort的排序规则IComparable接口

    C#中的List集合在排序的时候,如果不使用Lambda表达式进行排序的话,一般调用Sort()方法进行排序,如果希望Sort()方法排序后的结果跟我们预想的效果一致或者按照我们自定义的规则排序,则需 ...

  7. Python中的 sort 和 sorted

    今天在做一道题时,因为忘了Python中sort和sorted的用法与区别导致程序一直报错,找了好久才知道是使用方法错误的问题!现在就大致的归纳一下sort和sorted的用法与区别 1. sort: ...

  8. python中的sort、sorted、reverse、reversed详解

    python语言中的列表排序方法有三个:reverse反转/倒序排序.sort正序排序.sorted可以获取排序后的列表.在更高级列表排序中,后两中方法还可以加入条件参数进行排序. reverse() ...

  9. python中的sort和sorted

    共同点 都有三个参数, cmp用户自定义(指定函数),每个元素都会调用,效率没key高 key带一个参数的函数,用来为每个元素提取比较值 reverse=True    翻转 sort sort作用的 ...

随机推荐

  1. 数学补天 By cellur925

    质数 bool prime(int q) { ||q==) ; ) ; !=||q%!=) ; int cnt=sqrt(q); ;i<=cnt;i+=) !=||q%(i+)!=) ; ; } ...

  2. BZOJ-3555:企鹅QQ(字符串哈希)

    PenguinQQ是中国最大.最具影响力的SNS(Social Networking Services)网站,以实名制为基础,为用户提供日志.群.即时通讯.相册.集市等丰富强大的互联网功能体验,满足用 ...

  3. hdu1166-敌兵布阵-分块

    把区间分成√n份降低复杂度. #include<bits/stdc++.h> #define inf 0x3f3f3f3f ; ; using namespace std; int t,n ...

  4. BI的意义

    BI系统建设的价值,有可能不值钱,也有可能价值数千万,就看我们大家好用了没.”所以,BI系统建设的收获,终究还是因企业而异的,再归根,便是与企业的文化,与企业的人,尤其是管理层是极为相关的了. 商业智 ...

  5. Kaggle八门神器(一):竞赛神器之XGBoost介绍

    Xgboost为一个十分有效的机器学习模型,在各种竞赛中均可以看到它的身影,同时Xgboost在工业届也有着广泛的应用,本文以Titanic数据集为研究对象,简单地探究Xgboost模型建模过程,同时 ...

  6. Unity Log重新定向

    Unity Log重新定向 使用Unity的Log的时候有时候需要封装一下Debug.Log(message),可以屏蔽Log或者把log内容写到文本中.通过把文本内容传送到服务器中,查找bug出现的 ...

  7. 渣渣菜鸡的 ElasticSearch 源码解析 —— 环境搭建

    关注我 转载请务必注明原创地址为:http://www.54tianzhisheng.cn/2018/08/25/es-code01/ 软件环境 1.Intellij Idea:2018.2版本 2. ...

  8. MVC3 自定义的错误页

    ASP.NET MVC3中如果配置文件出错了,怎么跳转到自定义的错误页,现在参考网上的档案是说 添加 如下配置文件,并且在路径Views/Shared/下添加Error页面,测试下没有用的,请大家看看 ...

  9. Java transient关键字使用

    1. transient的作用及其使用方法 我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的 ...

  10. js操作文档对象的节点

    好吧,为了能让大家不至于睡着,我们先回顾先前面的东东吧~ 1.首先我们写了javaScriput的是一门弱类型的解释性的脚本语言:弱类型:我们的变量不用申明其具体的数据类型,在使用的时候浏览器根据其存 ...