首页 > 编程语言 >盘点Python内置函数sorted()高级用法实战

盘点Python内置函数sorted()高级用法实战

时间:2023-04-17 15:00:44浏览次数:42  
标签:内置 函数 Python age lst sorted 排序


清川带长薄,车马去闲闲。

大家好,我是Python进阶者。

一、前言

前几天在Python钻石交流群有个叫【emerson】的粉丝问了一个Python排序的问题,这里拿出来给大家分享下,一起学习下。


盘点Python内置函数sorted()高级用法实战_人工智能

其实这里【瑜亮老师】、【布达佩斯的永恒】等人讲了很多,只不过对于基础不太好的小伙伴们来说,还是有点难的。不过在实际应用中内置函数sorted()用的还是蛮多的,这里也单独拿出来讲一下,希望下次再有小伙伴遇到的时候,可以不慌。


盘点Python内置函数sorted()高级用法实战_编程语言_02

二、基础用法

内置函数sorted()可以用来做排序,基础的用法很简单,看个例子,如下所示。

lst = [3, 28, 18, 29, 2, 5, 88]
result = sorted(lst)
print(result)


盘点Python内置函数sorted()高级用法实战_python_03

程序运行之后,可以看到列表从小到大进行升序排序了。

如果想让它倒序排序的话,也很简单,加个reverse参数即可。

lst = [3, 28, 18, 29, 2, 5, 88]
result = sorted(lst, reverse=True)
print(result)


盘点Python内置函数sorted()高级用法实战_编程语言_04

三、高级用法

上面我们遇到的列表(迭代器)是很简单的数字类型,如果遇到比较复杂的迭代器,然后需要对其进行排序的话,如下面这个例子,如下:

lst = [
    {"id": 1, "name": "鲁班", "age": 18},
    {"id": 2, "name": "鲁班大师", "age": 26},
    {"id": 3, "name": "鲁大师", "age": 23},
    {"id": 4, "name": "狄仁杰", "age": 48}
]
# 按照年龄,对英雄进行排序,升序

针对类似这样的迭代器或者可迭代的对象,对其进行排序的话,就需要使用自定义的方法对其进行排序了。这个也都可以使用内置函数sorted()来进行,关于sorted()的用法如下所示。


盘点Python内置函数sorted()高级用法实战_人工智能_05

它一共有三个参数,第一个参数是可迭代对象,如列表、字典、集合等等;第二个参数是指排序规则(排序函数),在sorted()内部会将可迭代对象中的每一个元素传递给这个函数的参数,根据函数运行的结果进行排序;第三个参数是reverse,如果是True表示倒序,如果是False则表示正序。

那么针对该题目,可以使用下面的代码进行排序:

sorted(lst, key=lambda x: x.get('age'))

其中这个key就是自己自定义的一个匿名函数,用于指定排序规则,这里的话就是取字典中的age,然后根据age的大小去进行排序,所以得到的结果如下图所示。


盘点Python内置函数sorted()高级用法实战_数据分析_06

如果想取出年龄大于28的英雄,该怎么做?


盘点Python内置函数sorted()高级用法实战_数据分析_07

这里引申了下,也是可以使用内置函数来做,只不过这个地方用到的内置函数是filter()了,代码如下所示:

list(filter(lambda x: x['age'] >= 28, lst))


盘点Python内置函数sorted()高级用法实战_python_08

番外篇

最近又有很多小伙伴们在问Python深浅拷贝的知识点,这里昨天整理了一份资料,这里分享给大家,面试题的时候经常会被问到,共勉。


盘点Python内置函数sorted()高级用法实战_编程语言_09

三、总结

大家好,我是Python进阶者。这篇文章主要分享了Python的内置函数sorted()排序问题,针对该问题给出了具体的解析和代码演示,帮助粉丝顺利解决了问题。


标签:内置,函数,Python,age,lst,sorted,排序
From: https://blog.51cto.com/u_13389043/6195209

相关文章

  • python中列表常见的操作方法
    一、添加元素的方法1.append()方法#l.append()用于在列表末尾添加新的对象,返回值:该方法无返回值,但是会修改原来的列表l=[1,2,3,4,5]l1=[6,7,8]l2={"age":"12"}l3='年后,nihao'l4=('height','name')#增加列表l.append(l1)print(l)#......
  • python s12 day13 JavaScript、Dom和jQuery
    1.JavaScriptJavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理。1、JavaScript代码存在形式<!--方式一--><scripttype"text/javascript"src="JS文件"></script>......
  • m1--安装python2
    brewinstallpyenv##这样更快如果在国外这步可以跳过cd~/.pyenvwgethttps://www.python.org/ftp/python/2.7.18/Python-2.7.18.tar.xzmkdircachecpPython-2.7.18.tar.xzcache##安装pyenvinstall2.7.18exportPATH="$(pyenvroot)/shims:${PATH}"pyenvglobal......
  • python7 用于高级数据类型操作的公共方法
    1.+,*,in‘+’通过此方法可以连接两个数据‘*’通过此方法可以倍数型的复制数据‘in’通过此方法可以查询数据中是否有我们的目标查询数据,返回一个布尔值strA='123'strB='456'print(strA+strB)print(strA*2)print('1'instrA) 注:字符串,列表,元组,字典都可以使用这三种方法......
  • Python Web 深度学习实用指南:第四部分
    原文:Hands-OnPythonDeepLearningfortheWeb协议:CCBY-NC-SA4.0译者:飞龙本文来自【ApacheCN深度学习译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。不要担心自己的形象,只关心如何实现目标。——《原则》,生活原则2.3.c第4节:生产中的深度学习(智能Web应用)本节......
  • python+playwright 学习-52 iframe 定位与操作元素,监听事件,执行JS脚本总结
    前言本篇全面总结关于iframe的定位,iframe上元素的操作(输入框,点击等),iframe上的事件监听与iframe上执行JS脚本的总结。iframe对象的定位定位iframe对象,总的来说有四种方法page.frame_locator(selector)通过page对象直接定位iframe对象,传selector选择器参数page.loca......
  • 【迭代器设计模式详解】C/Java/JS/Go/Python/TS不同语言实现
    简介迭代器模式(IteratorPattern),是一种结构型设计模式。给数据对象构建一套按顺序访问集合对象元素的方式,而不需要知道数据对象的底层表示。迭代器模式是与集合共存的,我们只要实现一个集合,就需要同时提供这个集合的迭代器,就像Java中的Collection,List、Set、Map等,这些集合都有自......
  • Python 深度学习架构实用指南:第三、四、五部分
    原文:Hands-OnDeepLearningArchitectureswithPython协议:CCBY-NC-SA4.0译者:飞龙本文来自【ApacheCN深度学习译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。不要担心自己的形象,只关心如何实现目标。——《原则》,生活原则2.3.c第3节:序列建模在本节中,我们将学习......
  • python学习之-加密字体反扒
    #coding=utf-8'''#获取实习僧招聘信息#(https://www.shixiseng.com/interns?page=2&type=intern&keyword=%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98&area=&months=&days=°ree=&official=&enterprise=&salary=-0&publishTime=......
  • 技术老鸟告诉你Python为什么能一跃成为世界排名第一的语言
    本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注"慕课网"!作者:大周|慕课网讲师一、前言本文将结合个人经历为各位同学客观的分析是否有学习Python的必要、Python适合谁学、为什么要学,希望能够给看到此文章的同学一点建议,树立学习目标,让学习有结果。读完后,相信你一......