python——sort方法、sorted函数——排序

1147-柳同学

发表文章数:593

热门标签

, ,
首页 » Python » 正文


sort 与 sorted 区别:

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

list 的 sort 方法没有返回值,但是会对列表的对象进行排序,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

一、sort方法

描述
sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。

语法
sort()方法语法:

list.sort( key=None, reverse=False)

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

返回值
该方法没有返回值,但是会对列表的对象进行排序。

实例

# 列表
vowels = ['e', 'a', 'u', 'o', 'i']
 
# 降序
vowels.sort(reverse=True)
 
# 输出结果
print ( '降序输出:', vowels )
降序输出: ['u', 'o', 'i', 'e', 'a']
# 获取列表的第二个元素
def takeSecond(elem):
    return elem[1]
 
# 列表
random = [(2, 2), (3, 4), (4, 1), (1, 3)]
 
# 指定第二个元素排序
random.sort(key=takeSecond)
 
# 输出类别
print ('排序列表:', random)

排序列表:[(4, 1), (2, 2), (1, 3), (3, 4)]

二、sorted方法

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

sorted语法:sorted(iterable, key=None, reverse=False)  

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

返回值:
返回重新排序的可迭代对象

实例
通过字典中的value来进行数组/字典的排序

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'}]

根据字典中的value进行排序,也可以这么做

sortedClassCountDict = sorted(classCountDict.items(),key=operator.itemgetter(1),reverse=True)

先按照成绩降序排序,相同成绩的按照名字升序排序(-表示降序排序)

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}]

未经允许不得转载:作者:1147-柳同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《python——sort方法、sorted函数——排序》 发布于2021-01-09

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录