这里顺便说一下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. day 11 前方高能-迭代器

    第一类对象 -----函数名  == 变量名 函数对象可以像变量一样进行赋值 还可以作为列表的元素进行使用 可以作为返回值返回 def wrapper():     def inner():      ...

  2. Java基础—面向对象

    一.什么叫面向对象 万物皆对象(待更正) 二.面向对象三大特征 抽象:把一类对象共同特征进行抽取构造类的过程,包括两种抽象:第一种是数据抽象,也就是对象的属性.第二种是过程抽象,也就是对象的行为 封装 ...

  3. python sorted三个例子

    # 例1. 按照元素出现的次数来排序 seq = [2,4,3,1,2,2,3] # 按次数排序 seq2 = sorted(seq, key=lambda x:seq.count(x)) print ...

  4. mysql提示Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist解决方法

    一次重启mysql发现无法启动成功,通过检查mysql日志发现问题并解决了问题. mysql启动失败的日志: [root@nn ~]# tail -n 20 /var/log/mysqld.log 1 ...

  5. 【HNOI2016】网络

    题面 题解 考虑整体二分. 定义整体二分函数solve(l, r, ql, qr)表示操作权值在\([l, r]\)中,对\([ql, qr]\)的询问进行二分. 这样的话check就会很简单,先按照 ...

  6. 新的旅程:NodeJS - 环境篇

    用ASP.NET MVC好多年了,还记得当初为MVC所倡导的"DRY"理念所感染,为Razor的简单而震撼.随着MVC的成熟反而让我觉得似乎渐渐地走入了微软营造的一种高技术的牢笼. ...

  7. 【Android UI设计与开发】第01期:引导界面(一)ViewPager介绍和使用详解

    做Android开发加起来差不多也有一年多的时间了,总是想写点自己在开发中的心得体会与大家一起交流分享.共同进步,刚开始写也不知该如何下手,仔细想了一下,既然是刚开始写,那就从一个软件给人最直观的感受 ...

  8. 虚拟机console基础环境部署——安全加固

    1. 概述 安全是一个重要的课题.广义上可以总结为: 主机安全 网络安全 信息安全 数据安全 虽然console已经是最小化安装,但是这并不能说明console就已经安全了.之前的博客对console ...

  9. 【GAN与NLP】GAN的原理 —— 与VAE对比及JS散度出发

    0. introduction GAN模型最早由Ian Goodfellow et al于2014年提出,之后主要用于signal processing和natural document proces ...

  10. 第一个Spring冲刺周期团队进展报告

    第一天:学习了解ocr技术 第二天:继续学习了解ocr技术 第三天:开始尝试寻找识别灰度化处理的代码 第四天:尝试编译运行灰度化处理代码 第五天:能够灰度化处理图片 第六天:搜索提高识别率的代码 第七 ...