随笔- 310  文章- 1  评论- 0  阅读- 86066 

对所有可迭代的对象进行排序操作

sort 与sorted区别:

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

list的sort方法返回的是对已经存在的列表进行操作,而内建函数sorted方法返回的是一个新的list ,而不是在原来的基础上进行的操作

语法

sorted 语法:

sorted(iterable, key = None, reverse = False)

参数说明:

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

返回值

返回重新排序的列表。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
print(sorted([5, 2, 3, 1, 4]))  # 默认为升序
 
#sorted 的应用,也可以通过 key 的值来进行数组/字典的排序
array = [{"age":20,"name":"a"},{"age":25,"name":"b"},{"age":10,"name":"c"}]
array = sorted(array,key=lambda x:x["age"])
print(array)
 
#使用lambda和sorted将列表里字符串排序按照字符串中的数字从小到大排列
lis = ["PCR 0: Core Root of Trust of Measurement (CRTM), BIOS, and Platform Extensions",
       "PCR 9: NTFS Boot Block",
       "PCR 2: Option ROM Code",
       "PCR 10: Boot Manager",
       "PCR 4: Master Boot Record (MBR) Code",
       "PCR 8: NTFS Boot Sector",
       "PCR 11: BitLocker Access Control"]
print(sorted(lis, key=lambda x: int(x.split(':')[0][4:])))
 
#先按照成绩降序排序,相同成绩的按照名字升序排序
list1 = [{'name': 'Alex', 'score': 48}, {'name': 'Harry', 'score': 18}, {'name': 'JSON', 'score': 28},
         {'name': 'christ', 'score': 38}]
print(sorted(list1, key=lambda x: (-x['score'], x['name'])))

  

 

 posted on   boye169  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示