描述

sorted() 函数对所有可迭代的对象进行排序操作。

sort 与 sorted 区别:

sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。

list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

示例:

>>> sorted([5, 2, 3, 1, 4])
[1, 2, 3, 4, 5]

>>> a=[5,2,3,1,4]
>>> a.sort()
>>> a
[1,2,3,4,5]

注1、你也可以使用 list 的 list.sort() 方法。这个方法会修改原始的 list(返回值为None)。通常这个方法不如sorted()方便-如果你不需要原始的 list,list.sort()方法效率会稍微高一些。

注2、另一个区别在于list.sort() 方法只为 list 定义。而 sorted() 函数可以接收任何的 iterable。

>>> sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'})
[1, 2, 3, 4, 5]

注3、利用key进行倒序排序

>>> example_list = [5, 0, 6, 1, 2, 7, 3, 4]
>>> result_list = sorted(example_list, key=lambda x: x*-1)
>>> print(result_list)
[7, 6, 5, 4, 3, 2, 1, 0]
>>>

注4、要进行反向排序,也通过传入第三个参数 reverse=True:

>>> example_list = [5, 0, 6, 1, 2, 7, 3, 4]
>>> sorted(example_list, reverse=True)
[7, 6, 5, 4, 3, 2, 1, 0]

语法

sorted 语法:

sorted(iterable, key=None, reverse=False)  

参数说明:

  • iterable -- 可迭代对象。
  • key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
  • reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。

返回值

返回重新排序的列表。

精巧例子:

例子1:通过 key 的值来进行数组/字典的排序,比如:

array = [{"age":20,"name":"a"},{"age":25,"name":"b"},{"age":10,"name":"c"}]
array = sorted(array,key=lambda x:x["age"])
print(array)

输出结果:

[{'age': 10, 'name': 'c'}, {'age': 20, 'name': 'a'}, {'age': 25, 'name': 'b'}]

例子2:多列排序

先按照成绩降序排序,相同成绩的按照名字升序排序:

d1 = [{'name':'alice', 'score':38}, {'name':'bob', 'score':18}, {'name':'darl', 'score':28}, {'name':'christ', 'score':28}]
l = sorted(d1, key=lambda x:(-x['score'], x['name']))
print(l)

输出结果:

[{'name': 'alice', 'score': 38}, {'name': 'christ', 'score': 28}, {'name': 'darl', 'score': 28}, {'name': 'bob', 'score': 18}]

例子3:倒序排序

example_list = [34, 34, 55, 66, 77, 45, 32, 24]
result_list = sorted(example_list, key=lambda x: -x)
result_list

输出结果:

[77, 66, 55, 45, 34, 34, 32, 24]

例子4:对字符串中的关键字排序

test1 = ['data/test1/8973.jpg',
'data/test1/8974.jpg',
'data/test1/8976.jpg',
'data/test1/8975.jpg']imgs = sorted(test1, key=lambda x: int(x.split('.')[-2].split('/')[-1]))
imgs

输出结果:

['data/test1/8973.jpg', 'data/test1/8974.jpg', 'data/test1/8975.jpg', 'data/test1/8976.jpg']

Python: sorted() 函数相关推荐

  1. Python sorted() 函数

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

  2. python sorted函数_Python 经典面试题 二

    1.简要描述Python的垃圾回收机制(garbage collection) Python中的垃圾回收是以引用计数为主,标记-清除和分代收集为辅. •引用计数:Python在内存中存储每个对象的引用 ...

  3. python向函数传递列表,【Python】向函数传递列表

    向函数传递列表 在实际使用中你会发现,向函数传递列表是比较实用的,这种列表可能包含名字.数字.可能更复杂的对象(字典) 假设向一个函数传递一堆水果,我们说出我们喜欢所有的水果 def Obj(frui ...

  4. Python sorted() 函数

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

  5. python中sorted函数逆序_Python中sorted函数的用法(转)

    [Python] sorted函数 我们需要对List.Dict进行排序,Python提供了两个方法 对给定的List L进行排序, 方法1.用List的成员函数sort进行排序,在本地进行排序,不返 ...

  6. python内置函数sorted(x)的作用是_Python内置filter与sorted函数

    Python内部提供了序列过滤函数 filter . 接收参数为 一个函数以及一个序列.函数依次作用于序列中的每一个元素,并根据返回值是True 或者 False 判断是否删除该元素. 样例如下 # ...

  7. sort函数pythonreverse_Python基础 7 ---- Python内置sort和sorted函数

    1 Python对数据的排序有两种方法,一种是容器内置的sort函数,另外一种利用sorted函数 2 对于sort函数我们不再进行讨论,只要研究一下sorted函数 3 sorted函数的原形sor ...

  8. python 排序函数 sort sorted 简介

    sort() 是Python列表的一个内置的排序方法,list.sort() 方法排序时直接修改原列表,返回None: sort() 是Python内置的一个排序函数,它会从一个迭代器返回一个排好序的 ...

  9. python sorted key=str.lower_Python——sorted()函数

    sorted()函数 1.  python内置的sorted()函数可以对 list 进行排序 >>> sorted([12,1,3,34,-4]) [-4, 1, 3, 12, 3 ...

  10. Python中的sorted函数以及operator.itemgetter函数

    from:Python中的sorted函数以及operator.itemgetter函数 operator.itemgetter函数 operator模块提供的itemgetter函数用于获取对象的哪 ...

最新文章

  1. 代码整理工具_程序员软件:程序员有哪些常用又好用的编码小工具?
  2. [保护模式]PAE模式
  3. 高盛5年来首次看好中国互联网利润
  4. 软件著作权 开源框架_开源软件分享-基于.net core 3.1的快速开发框架
  5. OpenCV ChArUco角的检测
  6. 怎么让SVN日志显示作者和日期等信息?
  7. Ubuntu dpkg 常用命令教程
  8. opencv 重用代码块记录
  9. 平面三角形外接圆圆心与半径求解算法
  10. 电脑迷你世界,迷你世界电脑版
  11. MyExcel 2.1.4 版本发布,多项功能增强
  12. 云服务器 共享文件,云服务器 共享文件
  13. 微博,要再造一个“微博”?
  14. java技术栈是什么意思?一次认全9大主流技术栈!
  15. 罗马数字和阿拉伯数字之间的转换
  16. Linux系统安装rpm文件:error: can‘t create transaction lock on /var/lib/rpm/.rpm.lock
  17. CogResultsAnalysisTool工具
  18. 利用计算机实现音乐节拍的实时自动跟踪,基于自适应白化音乐节拍实时跟踪算法.doc...
  19. 服务器阵列卡安装win7系统,乐扩阵列卡IO-PCE9230-4IR组阵列方法和windows7系统安装到阵列组详细讲解(附视频) - 常见问题 - 技术支持 - 乐扩...
  20. 爬虫用户要如何选择代理ip提供商?

热门文章

  1. django之路由分组,路由分发,FBV,CBV,ORM框架
  2. 书评 – 程序员经典读物(2)
  3. Import declarations are not supported by current JavaScript version
  4. EF中创建、使用Oracle数据库的Sequence(序列)功能
  5. win10 + VS2015 + EF6 + MySQL
  6. 《大道至简》阅读笔记02
  7. CSS挂马及相应防范方法
  8. 添加 code snippets (转)
  9. 【Python】python学习笔记day1
  10. elasticsearch查询操作(使用marvel插件)