字典相关排序

字典相关排序

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

作者:陈超

posted @   中亿丰数字科技  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示