python的sorted函数及使用解析

11-21 74阅读 0评论

?=一、sort函数

如果对Python中的列表进行排序,可以使用list成员函数sort,该函数会在原空间上进行操作,对列表本身进行修改,不返回副本。语法如下:

L.sort(cmp=None, key=None, reverse=False)

二、sorted函数

sorted函数就比sort函数要强大许多了,sort只能对列表进行排序,sorted可以对所有可迭代类型进行排序,并且返回新的已排序的列表。语法如下:

sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list 

一共可接受4个参数,含义分别如下:1.可迭代类型,例如字典、列表、2.比较函数3.可迭代类型中某个属性,对给定元素的每一项进行排序4.降序或升序

三、结合使用

与sorted经常结合使用的有:

1.比较函数经常会用到Lambda

lambda表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。比如对元组组成的列表中某一项进行排序:

studenTS = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10),]   sorted(students, key=lambda student : student[2])   # sort by age   [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]  

2.比较函数经常会用到operator.itemGetter函数

operator模块提供的itemgetter函数用于获取对象的哪些维的数据,参数为一些序号。

要注意,operator.itemgetter函数获取的不是值,而是定义了一个函数,通过该函数作用到对象上才能获取值。sorted函数用来排序,sorted(iterable[, cmp[, key[, reverse]]])其中key的参数为一个函数或者lambda函数。所以itemgetter可以用来当key的参数

 例如根据第二个域和第三个域进行排序  a = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]  sorted(students, key=operator.itemgetter(1,2))

3.可迭代元素经常会用到items

items是字典中的一个方法,返回由元组组成的列表。

四、对字典的值进行排序

dict={'a':1,'b':2} ans = sorted(DIct.items(), key = lambda x:x[1], reverse = True)

python中sorted()用法

sorted()函数:返回一个排序后的新序列,不改变原始序列。

我们知道,Python中列表是基本数据类型之一,是写在方括号之间,用逗号分隔开的元素序列。可以同时存在数字字符串、元组、字典、集合等数据类型的对象,甚至可以含列表(即嵌套),例如。[1,2,3] [a,b,c] [123,[abc]]

关于列表的常用函数,例如sorted()函数,具体用法及案例如下:

sorted(iterable[,key][,reverse])返回一个排序后的新序列,不改变原始的序列。

第一个参数interable是可迭代的对象。

第二个参数key用来指定一个带参数的函数,该函数会在每个元素排序前被调用,如key=abs #按绝对值大小排序。

key指定的函数将作用于list的每一个元素上,并根据key指定的函数返回的结果进行排序。

第三个参数reverse用来指定正向还是反向排序

如反向排序第三个参数reverse=True:

例如>>>sorted(['bcd','about','diff','create'],key=str.lower,reverse=True) #按小写反向排序

['diff','create','bcd','about']

到此这篇关于python的sorted函数的文章就介绍到这了,更多相关python sorted函数内容请搜索云初冀北以前的文章或继续浏览下面的相关文章希望大家以后多多支持云初冀北!

免责声明
本站提供的资源,都来自网络,版权争议与本站无关,所有内容及软件的文章仅限用于学习和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,我们不保证内容的长久可用性,通过使用本站内容随之而来的风险与本站无关,您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。侵删请致信E-mail:Goliszhou@gmail.com
$

发表评论

表情:
评论列表 (暂无评论,74人围观)

还没有评论,来说两句吧...