字典相关排序
字典相关排序
sorted() 语法:
sorted(iterable, key=None, reverse=False)
# 参数说明:
iterable -- 可迭代对象。
key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
字典排序
# 字典按k排序
a = {'Z': 1, 'Y': 3, 'X': 2}
# 方式一
b = {k: a[k] for k in sorted(a.keys())}
# {'X': 2, 'Y': 3, 'Z': 1}
# 方式二
b = sorted(a.items(), key=lambda x: x[0])
b = {i[0]: i[1] for i in b}
# {'X': 2, 'Y': 3, 'Z': 1}
# 字典按v排序
a = {'Z': 1, 'Y': 3, 'X': 2}
c = sorted(a.items(), key=lambda x: x[1])
# [('Z', 1), ('X', 2), ('Y', 3)]
列表嵌套字典
# res = sorted(列表, key=lambda x: x[指定k], reverse=True降序)
d = [{"name":"Jack","age":18,"money": 1000},{"name":"Lily","age":20, "money": 3000},{"name":"Jami","age":20, "money": 2000}]
ds = sorted(d,key=lambda x:x['age'],reverse=True)
ds2 = sorted(d,key=lambda x:(x['age'], x['money']))
print(ds)
print(ds2)
运行结果:
[{'name': 'Lily', 'age': 20, 'money': 3000}, {'name': 'Jami', 'age': 20, 'money': 2000}, {'name': 'Jack', 'age': 18, 'money': 1000}]
[{'name': 'Jack', 'age': 18, 'money': 1000}, {'name': 'Jami', 'age': 20, 'money': 2000}, {'name': 'Lily', 'age': 20, 'money': 3000}]
字典嵌套字典
# res = sorted(字典.items(), key=lambda x: x[1][指定k])
D = {10:{"aa":1,"bb":2},11:{"aa":2,"bb":0},12:{"aa":0,"bb":3}}
ds = sorted(D.items(),key=lambda x:x[1]['bb'])
print(ds)
运行结果:
[(11, {'aa': 2, 'bb': 0}), (10, {'aa': 1, 'bb': 2}), (12, {'aa': 0, 'bb': 3})]
作者:陈超
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix