Python dict排序

sorted(iterable,key,reverse)

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

sorted 函数按key值对字典排序

d= {'HUAWEI ELE-AL00': 5333, 'iPhone9,2': 4957, 'iPhone13,2': 18933}
print(d.keys())
print(sorted(d.keys(),reverse=True))
a = sorted(d.items(), key=lambda x: x[0], reverse=True)
print(a)

# 结果:
#dict_keys(['HUAWEI ELE-AL00', 'iPhone9,2', 'iPhone13,2'])
#['iPhone9,2', 'iPhone13,2', 'HUAWEI ELE-AL00']
#[('iPhone9,2', 4957), ('iPhone13,2', 18933), ('HUAWEI ELE-AL00', 5333)]

sorted 函数按value值对字典排序

d= {'HUAWEI ELE-AL00': 5333, 'iPhone9,2': 4957, 'iPhone13,2': 18933}
print(d.values())
print(sorted(d.values(),reverse=True))
a = sorted(d.items(), key=lambda x: x[1], reverse=True)
print(a)

# 结果:
#dict_values([5333, 4957, 18933])
#[18933, 5333, 4957]
#[('iPhone13,2', 18933), ('HUAWEI ELE-AL00', 5333), ('iPhone9,2', 4957)]

字典列表排序

lis = [{"name": "Taobao", "age": 100},
       {"name": "Runoob", "age": 7},
       {"name": "Google", "age": 100},
       {"name": "Wiki", "age": 200}]

# 通过 age 升序排序
print("列表通过 age 升序排序: ")
print(sorted(lis, key=lambda i: i['age']))

print("\r")

# 先按 age 排序,再按 name 排序
print("列表通过 age 和 name 排序: ")
print(sorted(lis, key=lambda i: (i['age'], i['name'])))

print("\r")

# 按 age 降序排序
print("列表通过 age 降序排序: ")
print(sorted(lis, key=lambda i: i['age'], reverse=True))

# 结果:
列表通过 age 升序排序: 
[{'name': 'Runoob', 'age': 7}, {'name': 'Taobao', 'age': 100}, {'name': 'Google', 'age': 100}, {'name': 'Wiki', 'age': 200}]

列表通过 age 和 name 排序: 
[{'name': 'Runoob', 'age': 7}, {'name': 'Google', 'age': 100}, {'name': 'Taobao', 'age': 100}, {'name': 'Wiki', 'age': 200}]

列表通过 age 降序排序: 
[{'name': 'Wiki', 'age': 200}, {'name': 'Taobao', 'age': 100}, {'name': 'Google', 'age': 100}, {'name': 'Runoob', 'age': 7}]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容