一、前言前几天在Python钻石交流群里,一个叫[emerson]的爱好者问了一个关于Python排序的问题。在这里分享给大家,一起学习下。其实这里【玉良老师】、【布达佩斯的永恒】等人讲了很多,不过对于基础不是很好的人来说还是有点难度。不过在实际应用中,内置函数sorted()用的还是挺多的,这里单独说一下,希望下次有小伙伴遇到它,不要慌张。2.基本用法内置函数sorted()可用于排序。基本用法非常简单。看一个例子,如下图。lst=[3,28,18,29,2,5,88]result=sorted(lst)print(result)程序运行后可以看到列表是按照从小到大升序排列的。如果想让它倒序排序,也很简单,加一个reverse参数即可。lst=[3,28,18,29,2,5,88]result=sorted(lst,reverse=True)print(result)3.高级用法上面我们遇到的列表(迭代器)都是很简单的数字类型,if你遇到比较复杂的迭代器,那么你需要对它进行排序,如下例,如下:lst=[{"id":1,"name":"Luban","age":18},{"id":2,"name":"鲁班大师","age":26},{"id":3,"name":"鲁班大师","age":23},{"id":4,"name":"狄仁杰","age":48}]#按照年龄对英雄进行排序,升序是迭代器或者像这样的可迭代对象。要对它们进行排序,需要使用自定义的方法进行排序。这也可以使用内置函数sorted()来完成。sorted()的用法如下。它一共有三个参数。第一个参数是一个可迭代对象,比如列表、字典、集合等;第二个参数指的是排序规则(排序函数),在sorted()内部,可迭代对象将被传递给这个函数的每个元素的参数按照函数运行的结果进行排序;第三个参数reverse,为True表示倒序,为False表示正序。所以对于这个题目,可以使用如下代码进行排序:sorted(lst,key=lambdax:x.get('age'))其中key是自己自定义的匿名函数,用来指定排序规则,这里在本例取字典中的age,然后根据age的大小进行排序,所以得到的结果如下图所示。提取28岁以上的英雄怎么办?这里是一个扩展,你也可以使用内置函数来做,但是这里使用的内置函数是filter()。代码如下:list(filter(lambdax:x['age']>=28,lst))Extraarticle最近有很多小伙伴在问Python深浅复制的知识点。这是昨天整理的一个资料,在这里分享给大家。面试题我经常被问到,互相鼓励。3.总结大家好,我是Python进阶。本文主要分享Python内置函数sorted()的排序问题,并针对该问题给出具体分析和代码演示,帮助爱好者顺利解决问题。
