这里顺便说一下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()的更多相关文章

  1. Python 内置函数sorted()在高级用法

    对于Python内置函数sorted(),先拿来跟list(列表)中的成员函数list.sort()进行下对比.在本质上,list的排序和内建函数sorted的排序是差不多的,连参数都基本上是一样的. ...

  2. 内置函数 sorted

    内置函数 sorted 语法: sorted(iterable,key = None,reverse= false)iterable: 可迭代的对象key:排序规则(排序函数),在sorted内部将& ...

  3. python内置函数sorted()及sort() 函数用法和区别

    python内置函数sorted(),sort()都有排序的意思,但是两者有本质的区别,sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作,list 的 sort ...

  4. python 使用内置函数sorted对各种数据类型进行排序

    python有两个内置的函数用于实现排序,一个是list.sort()函数,一个是sorted()函数. 区别1:list.sort()函数只能处理list类型数据的排序:sorted()则可以处理多 ...

  5. 内置函数——sorted

    对List.Dict进行排序,Python提供了两个方法对给定的List L进行排序,方法1.用List的成员函数sort进行排序,在本地进行排序,不返回副本方法2.用built-in函数sorted ...

  6. 内置函数--sorted,filter,map

    sorted() 排序函数. 语法: sorted(Iterable, key=None, reverse=False) Iterable: 可迭代对象;  key: 排序规则(排序函数); reve ...

  7. 内置函数(sorted、map、enumerate、filter、reduce)

    1.sorted() 语法: sorted(iterable, cmp=None, key=None, reverse=False) 把iterable中的items进行排序之后,返回一个新的列表,原 ...

  8. python 内置函数 sorted()

    sorted() 函数对所有可迭代的对象进行排序操作. sort 与 sorted 区别: sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作. list 的 s ...

  9. python学习笔记011——内置函数sorted()

    1 描述 sorted() 函数对所有可迭代的对象进行排序操作. sorted() 与sort()函数之间的区别 1 排序对象 sorted:所有可迭代对象的排序 sort:list列表的排序 2 返 ...

随机推荐

  1. IHttpModule不起作用的两个原因

    最近在将系统改造成微服务的过程中,需要对以前的Url请求做兼容性处理,于是就采用了HttpModules模型,但在测试中碰到IHttpModules模块不起作用. 一.IIS配置问题 我用的IIS7. ...

  2. VS与Opencv的亲密接触之安装配置过程

    最近想把FPGA采集的图像,上传到上位机显示,看到Opencv能帮大忙,所以就折腾折腾! 我用的是VS2012和opencv-2.4.10-2.4.10(目前的最新版本),那个版本无所谓,本文都将适用 ...

  3. flask 与 vue.js 2.0 实现 todo list

    实现了后端与前端分离,后端提供 RESTful api. 后端 flask 与前端 vue 的数据传输都是 json. 本文使用 vue.js 2.0 对前一个例子:flask, SQLAlchemy ...

  4. CF1096G Lucky Tickets

    https://www.luogu.org/problemnew/show/CF1096G 显然dp出用\(\frac{n}{2}\)个数能拼出来的每个数的方案数,平方相加就行了,dp显然ntt+快速 ...

  5. servelt filter listener 的生命周期

    1. servlet    当第一次请求一个servlet资源时,servlet容器创建这个servlet实例,并调用他的 init(ServletConfig config)做一些初始化的工作,然后 ...

  6. mysql基础(二)—— 简单sql

    查询 select * from company select c.code from company c; select m.bookname from myview m; (myview为视图) ...

  7. TensorFlow 训练MNIST数据集(2)—— 多层神经网络

    在我的上一篇随笔中,采用了单层神经网络来对MNIST进行训练,在测试集中只有约90%的正确率.这次换一种神经网络(多层神经网络)来进行训练和测试. 1.获取MNIST数据 MNIST数据集只要一行代码 ...

  8. 余玄相似度,TF-IDF

    能干什么? 文章去重,语句去重,提取关键词(文章摘要,页面指纹),图片识别,语音识别 想要做一个相似度,最重要的是什么? 必须得到一个度量:计算个体之间的相似程度(分数,0-1之间,0代表完全不同,一 ...

  9. Linux/centos 7 使用动态ip(dhcp)切换成静态ip后无法联网的问题

    确保:子网掩码,网关,dns一致,最后修改: /etc/sysconfig/network-scripts/ifcfg-ens33 查看网关和子网掩码: route -n 查看dns

  10. Unity实现简单的AR

    ,本篇是我在博客园上第一次写随笔,有什么不对或者问题可以在评论区留言告诉我哈! 关于AR(增强现实技术(Augmented Reality))简单的概念,在这里就不说了,有兴趣的同学可以上网详细了解, ...