内置函数sorted()
这里顺便说一下sorted()和sort()的异同。
sort 是 list 中的方法,只能对列表排序;sorted 可以对所有可迭代对象进行排序。
list 的 sort 方法是对原列表进行操作,而内置函数 sorted 会返回一个新的 list,而不是对原对象的操作。
>>> help(sorted)
Help on built-in function sorted in module builtins:
sorted(iterable, key=None, reverse=False)
Return a new list containing all items from the iterable in ascending order.
A custom key function can be supplied to customize the sort order, and the reverse flag can be set to request the result in descending order.
>>> help(list.sort)
Help on method_descriptor:
sort(...)
L.sort(key=None, reverse=False) -> None -- stable sort *IN PLACE*
两个函数的两个可选参数相同。
- key 给定一个函数,用来处理比较对象,然后通过函数返回结果进行比较。默认为None,直接按第一列排序。
- reverse 是一个布尔值,用来指定排序方向。reverse = True 表示降序 , reverse = False 表示升序(默认)。
用sorted排序之后,会返回一个新的list,不影响原来的list。
>>> nums = [4,9,3,2,1,5,6,8,7]
>>> sorted(nums)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> nums
[4, 9, 3, 2, 1, 5, 6, 8, 7]
用sort排序之后,原list被改变。
>>> nums = [4,9,3,2,1,5,6,8,7]
>>> nums.sort()
>>> nums
[1, 2, 3, 4, 5, 6, 7, 8, 9]
创建一个字典,并转换为元祖列表。
>>> d={'a': 10, 'b': 9, 'c': 11, 'd': 1, 'e': 5}
>>> L=list(d.items())
>>> L
[('a', 10), ('b', 9), ('c', 11), ('d', 1), ('e', 5)]
利用lambda函数指定用元祖中的第二个元素排序。
>>> sorted(L,key=lambda x:x[1])
[('d', 1), ('e', 5), ('b', 9), ('a', 10), ('c', 11)]
不指定排序key即key为none时,默认按第一列直接排序。
>>> sorted(L)
[('a', 10), ('b', 9), ('c', 11), ('d', 1), ('e', 5)]
>>> L
[('a', 10), ('b', 9), ('c', 11), ('d', 1), ('e', 5)]
sort也可以按指定key排序。
>>> L.sort(key=lambda x:x[1])
>>> L
[('d', 1), ('e', 5), ('b', 9), ('a', 10), ('c', 11)]
>>> l = ['a', 4, 3, 2, 1, [1, 2]]
>>> l.sort(key=str, reverse=True)
>>> l
['a', [1, 2], 4, 3, 2, 1]
参考:https://docs.python.org/3/library/functions.html#sorted
内置函数sorted()的更多相关文章
- Python 内置函数sorted()在高级用法
对于Python内置函数sorted(),先拿来跟list(列表)中的成员函数list.sort()进行下对比.在本质上,list的排序和内建函数sorted的排序是差不多的,连参数都基本上是一样的. ...
- 内置函数 sorted
内置函数 sorted 语法: sorted(iterable,key = None,reverse= false)iterable: 可迭代的对象key:排序规则(排序函数),在sorted内部将& ...
- python内置函数sorted()及sort() 函数用法和区别
python内置函数sorted(),sort()都有排序的意思,但是两者有本质的区别,sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作,list 的 sort ...
- python 使用内置函数sorted对各种数据类型进行排序
python有两个内置的函数用于实现排序,一个是list.sort()函数,一个是sorted()函数. 区别1:list.sort()函数只能处理list类型数据的排序:sorted()则可以处理多 ...
- 内置函数——sorted
对List.Dict进行排序,Python提供了两个方法对给定的List L进行排序,方法1.用List的成员函数sort进行排序,在本地进行排序,不返回副本方法2.用built-in函数sorted ...
- 内置函数--sorted,filter,map
sorted() 排序函数. 语法: sorted(Iterable, key=None, reverse=False) Iterable: 可迭代对象; key: 排序规则(排序函数); reve ...
- 内置函数(sorted、map、enumerate、filter、reduce)
1.sorted() 语法: sorted(iterable, cmp=None, key=None, reverse=False) 把iterable中的items进行排序之后,返回一个新的列表,原 ...
- python 内置函数 sorted()
sorted() 函数对所有可迭代的对象进行排序操作. sort 与 sorted 区别: sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作. list 的 s ...
- python学习笔记011——内置函数sorted()
1 描述 sorted() 函数对所有可迭代的对象进行排序操作. sorted() 与sort()函数之间的区别 1 排序对象 sorted:所有可迭代对象的排序 sort:list列表的排序 2 返 ...
随机推荐
- XSS Challenges练习及解答
一个偶然的机会在知道创宇的技能表里看到了一个练习XSS的网站http://xss-quiz.int21h.jp,正好想研究这个,于是试着做了一下. 第一.二题是最简单的,直接在搜索框中输入以下代码就成 ...
- 20155227辜彦霖《基于Cortex-M4的UCOSIII的应用》课程设计个人报告
20155227辜彦霖<基于Cortex-M4的UCOSIII的应用>课程设计个人报告 一.个人贡献 参与课设题目讨论及完成全过程: 资料收集: 负责主要代码调试: 撰写小组结题报告. 二 ...
- Django中的cookie和session
前言 HTTP协议 是短连接.且状态的,所以在客户端向服务端发起请求后,服务端在响应头 加入cokie响应给浏览器,以此记录客户端状态: cook是来自服务端,保存在浏览器的键值对,主要应用于用户登录 ...
- java写个自己的mvc框架学习笔记
1. 介绍 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的 ...
- 基于HTTPS的中间人攻击-BaseProxy
前言 在上一篇文章BaseProxy:异步http/https代理中,我介绍了自己的开源项目BaseProxy,这个项目的初衷其实是为了渗透测试,抓包改包.在知识星球中,有很多朋友问我这个项目的原理及 ...
- jersey2 整合 spring + hibernate + log4j2
整合 spring jersey2 官方还未正式支持 spring4, 但网上有好多支持方案,折腾了一圈后,还是用了 spring3; pom 添加以下依赖配置 <!-- Spring --&g ...
- 《杜增强讲Unity之Tanks坦克大战》9-发射子弹时蓄力
9 发射子弹时蓄力 实现效果如下 image 按下开火键(坦克1为空格键)重置力为最小力,一直按着的时候蓄力,抬起的时候发射.如果按着的时候蓄力到最大,则自动发射,此时在抬起则不会重复发射. 首先 ...
- DRF03
为了方便接下来的操作,需要在admin站点创建一个管理员. python manage.py createsuperuser 可在setting.py中修改admin站点语言, LANGUAGE_CO ...
- Alpha阶段个人贡献分及转会人员确定
请各个团队协商确定个人贡献分,评分根据之前个团队确定的规则进行.每个团队的个人贡献分总数为50*N,N为团队的人数. 个人贡献分要求:必须是一个自然数,每个人分数互不相同,并且和为50*N. 请各个团 ...
- 软工第三次作业 -- 结对之AutoCS1.0
031302331 031302223 一.将初始排课表导入系统数据库 法1:通过jxl解析excel,把数据插入数据库.较简单,预计用时60分钟 我们采取的是 法2(预计用时30分钟):我们使用的是 ...