python中的sort、sorted排序
我们通常会遇到对数据库中的数据进行排序的问题,今天学习一下对列表和字典的排序方法。
列表
sort()对列表排序是永久性的排序。
用法:sort(*, key=None, reverse=False)
- 注意这个reverse。当reverse为True时,代表反向排列;默认为False,正向排列。
举例:
>>> d = ['', '', '', '', '', '']
>>> d.sort()
>>> d
['', '', '', '', '', '']
>>> d.sort(reverse=True)
>>> d
['', '', '', '', '', '']
sorted()排序是一种临时性的排序,并不会对列表本身造成影响,其返回的是一个新的列表
用法:sorted(iterable, *, key=None, reverse=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排序的更多相关文章
- 第8.23节 Python中使用sort/sorted排序与“富比较”方法的关系分析
一. 引言 <第8.21节 Python中__lt__.gt__等 "富比较"("rich comparison")方法用途探究>和<第8.2 ...
- Python中自定义类未定义__lt__方法使用sort/sorted排序会怎么处理?
在<第8.23节 Python中使用sort/sorted排序与"富比较"方法的关系分析>中介绍了排序方法sort和函数sorted在没有提供key参数的情况下默认调用 ...
- python中的sort方法
Python中的sort()方法用于数组排序,本文以实例形式对此加以详细说明: 一.基本形式 列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不 ...
- python中的sort方法使用详解
Python中的sort()方法用于数组排序,本文以实例形式对此加以详细说明: 一.基本形式 列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不 ...
- Python中的sort()
Python中的sort()方法用于数组排序,本文以实例形式对此加以详细说明: 一.基本形式列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不可 ...
- 【转载】C#中自定义Sort的排序规则IComparable接口
C#中的List集合在排序的时候,如果不使用Lambda表达式进行排序的话,一般调用Sort()方法进行排序,如果希望Sort()方法排序后的结果跟我们预想的效果一致或者按照我们自定义的规则排序,则需 ...
- Python中的 sort 和 sorted
今天在做一道题时,因为忘了Python中sort和sorted的用法与区别导致程序一直报错,找了好久才知道是使用方法错误的问题!现在就大致的归纳一下sort和sorted的用法与区别 1. sort: ...
- python中的sort、sorted、reverse、reversed详解
python语言中的列表排序方法有三个:reverse反转/倒序排序.sort正序排序.sorted可以获取排序后的列表.在更高级列表排序中,后两中方法还可以加入条件参数进行排序. reverse() ...
- python中的sort和sorted
共同点 都有三个参数, cmp用户自定义(指定函数),每个元素都会调用,效率没key高 key带一个参数的函数,用来为每个元素提取比较值 reverse=True 翻转 sort sort作用的 ...
随机推荐
- JavaScript进阶 - 第1章 系好安全带,准备启航
第1章 系好安全带,准备启航 1-1让你认识JS 你知道吗,Web前端开发师需要掌握什么技术?也许你已经了解HTML标记(也称为结构),知道了CSS样式(也称为表示),会使用HTML+CSS创建一个漂 ...
- VS 小插件 之 编辑器背景图片
一.引言 不知道标题的名字我描述的是否正确哈,其实就是用VS写代码的时候,背景一般都是纯白 或者 纯黑(看主题而定),那么我前段时间发现 只需要一个VS插件,居然可以给VS设置背景图片,甚至还可以循环 ...
- php:两个文件夹递归地比较,没有的文件自动复制过去
仿站时,通常默认模板文件和新的模板文件大部分都是一样的,下面代码可以用于比较文件是否缺失(和默认模板做比较) 如果缺失自动复制过去~~ <?php /** * used:新模板和default模 ...
- Java EE学习笔记(九)
MyBatis的关联映射 1.关联关系概述 1).实际的开发中,对数据库的操作常常会涉及到多张表,这在面向对象中就涉及到了对象与对象之间的关联关系.针对多表之间的操作,MyBatis提供了关联映射,通 ...
- 如果查询的结果少,可以把查询结果当子集,再查另一张表,比join的速度快得多得多
) as qty from riv_print_history_l phl JOIN tab_user_profile up on up.UP_USER_ID = phl.PHL_PRINT_USER ...
- notepad++添加到运行
1. 点击开始,输入regedit,点击回车2.在注册表中找到 HKEY_CLASSES_ROOT 下面的 Applications3.修改注册表 1).在Applications下面找到对应的程序名 ...
- Codeforces Round #378 (Div. 2) D. Kostya the Sculptor 分组 + 贪心
http://codeforces.com/contest/733/problem/D 给定n个长方体,然后每个长方体都能选择任何一个面,去和其他长方体接在一起,也可以自己一个,要求使得新的长方体的最 ...
- EF批量插入数据耗时对比
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- JAVA 框架之面向对象设计原则
面向对象设计原则: 单一职责原则 SRP : 一个类或者行为只做一件事 . 降低代码冗余,提高可重用性,可维护性,可扩展性,可读性 使用组合形式 里氏替换原则 LSP : 所有引用基类 ...
- 关于React的require添加动态变化的路径
关于React的require添加动态变化的路径 直接这样写显然是不会有错误的 let path = require('../images/girl.png'); 但是如果你尝试着 var gg = ...