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