python使用sort排序,python3 sorted自定义排序
文章描述了语法返回值实例的一般用法:高级用法:1、lambda函数2、operator.itemgetter()3、机器学习实例参考。
描述sorted()函数对所有可迭代的对象的排序操作。
排序和已排序的区别:
1.排序是一种应用于列表的方法。sorted可以对所有可迭代对象进行排序。
2.list的sort方法返回一个对现有list的操作,没有返回值,而内置函数的sorted方法返回一个新的list,而不是在原有基础上的操作。
语法排序(iterable,CMP=none,key=none,reverse=false)
参数描述:
[iterable]可迭代对象。
[cmp]比较功能。这个函数有两个参数,它们的值都取自iterable对象。这个函数必须遵循的规则是:大于则返回1;如果小于,则返回-1;如果相等,则返回0。(一般省略)
[key]主要作为比较的元素,只有一个参数。特定函数的参数取自iterable对象,并指定iterable对象中的一个元素进行排序。常用的用来作为参数key的函数有 lambda函数和operator.itemgetter()尤其是列表元素为多维数据时,需要key来选取按哪一位数据来进行排序
[reverse]排序规则,reverse=真降序,reverse=假升序(默认)。
返回一个重新排序的返回值列表。需要注意,列表的元素可以是多样的,返回列表的形式与输入列表的形式一致示例一般用法:当元素为一维数字或字母时,结果返回一个新的列表,其中元素按升序或降序排列(根据reverse参数确定)list=[1,5,7,2,4] print (sorted (list)) output: [1,2,4,5,7] list C , f , a , z ]print(sorted(list))output:[ a , C , d , f , z] list=[vz , 1bf , GC ,然后打印(sorted高级用法:当数据是多维的或者想以特殊的形式排序时,通过改变key函数来实现。可用作参数键的函数形式有
1.lambda函数list=[a , BC , defg ,帅, qwertyyuu] print (sorted (list,key=lambda x: len (x),reverse=true))输出:[qwertyyuu ,帅
匿名函数lambda是指一类没有定义标识符(函数名)的函数或子例程。
Lambda函数可以接收任意数量的参数(包括可选参数)并返回单个表达式的值。
描述:
冒号前可以有多个参数,用逗号分隔,冒号右边是表达式。实际上,lambda返回值是一个函数的地址,也就是函数对象。
格式:
(1)函数不能包含命令、
(2)它不能包含多个表达式。
要点:
一定要用lambda函数;只要你能使用它们,你就可以定义一个普通的函数来代替它们。我将它们用于需要封装的特殊的、不可重用的代码,说明:。
2、operator . item getter()import operator tuple _ list=[(A ,1,5),( B ,3,2),( C ,2,6)]print(sorted(tuple_list,Key=operator.itemgetter (1)) #即按第1维输出排序:[( A ,1,5),( C ,2,6),( B ,3,2)]避免令我的代码充斥着大量单行函数
运算符模块提供的itemgetter函数用于获取对象的哪些维度的数据,参数是一些序列号。A=[1,2,3]b=operator . item getter(1)//定义函数b,获取对象第一个域的值,b (a) 2b=operator.itemgetter (1,0)//定义函数b,获取对象第一个和第0个域的值,b (a) (2,1
# Sort DEF Majority CNT (classlist)根据分类后的类别数:class count={ } For vote in class list:if vote not in class count . keys():class count[vote]=0 class count[vote]=1 sorted class count=sorted(class count . items(),key=operator.itemgetter (1),reverse=true)返回sortedclasscount [0] [0]注意:对于排序字典,需要使用items()函数来遍历它们的元素。
items()函数将字典中的键值对转换成元组,并将这些元组放入列表描述:中
dict={Google: www.google.com , Runoob: www.runoob.com ,淘宝: www.taobao.com } print(dict。items())输出:dict _ items([( Google , www.google.com ),( Runoob , www.runoob.com ),(淘宝, www .淘宝。com’)))因此,此实例中,classCount.items()获得一个列表,元素为二维元组,key=operator.itemgetter(1)按照后一个元素进行排序(即标签出现的次数)反=真按照降序排列返回sortedClassCount[0][0]为返回出次数最高的标签及其次数。
参考1、排序()函数
2、python中的operator.itemgetter函数
3、python中的希腊字母的第11个函数用法
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。