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

列表

第一种:内建方法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. 黑马SSM练习中 Oracle SQL代码

    -- 10张表 product member orders traveller order_traveller users role permission users_role role_permis ...

  2. Sql Server常用函数及技巧

    使用Sql Server好长时间了,今天特别想总结一下,算是回顾吧! 总结: 其实很多技巧,都是基于SQL Server自带的System Views,System Stored Procedures ...

  3. 原型设计模式(prototype

    # 什么是原型设计模式 > 这里与软件工程中的原型开发模式有那么一点类似的地方,我们首先需要构建出一个原型,这个原型可以在现实开发中抽象出来的具体类型,但是这个类型与具体的类又不同,需要抽取公共 ...

  4. Django (十一) 项目部署 2

    阿里云项目部署 ( 如果xshell连接不上阿里云: 解决方法: 1, 在淘宝IP地址库查看当前IP: http://ip.taobao.com/ 2, 点击进入:安全(云盾) -> 安骑士(服 ...

  5. luogu P2731 骑马修栅栏 Riding the Fences

    入度为奇数的点,搜他. 最好邻接矩阵... #include<cstdio> #include<iostream> #define R register int using n ...

  6. Linux中/etc/passwd 和 /etc/shadows 详解

    linux操作系统上的用户如果需要登录主机,当其输入用户名和密码之后: 首先在/etc/passwd文件中查找是否有你的账号,如果没有无法登录,如果有的话将该用户的UID和GID读出来,此外将此用户的 ...

  7. 获取spring里的bean

    ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring. ...

  8. readonly与const的区别

    readonly 关键字与 const 关键字不同.const 字段只能在该字段的声明中初始化.readonly字段可以在声明或构造函数中初始化.因此,根据所使用的构造函数,readonly字段可能具 ...

  9. Random类、ThreadLocalRandom类

    Random和ThreadLocalRandom类均用于生成伪随机数. Random的构造函数: Random()     默认以系统当前时间为种子,相当于Random(System.currentT ...

  10. 第一天课程-html基础

    一.课程内容: 1.安装需要的软件 安装了三个软件:Adobe Dreamweaver,EmEditor,FSCapture.分别是前端开发软件.功能强大的文本编辑器,截图录屏软件 2.了解文件格式. ...