- 字符串排序
- 列表排序
- 字典排序
字典列表排序
列表嵌套字典
from operator import itemgetter
datas = [
{"id": 10, "score": "77"},
{"id": 24, "score": "99"},
{"id": 5, "score": "88"},
{"id": 12, "score": "88"}
]
单维度排序
# 方法一
sorted(datas, key=itemgetter("id"))
# 方法二
sorted(datas, key=lambda e:e.__getitem__("id"))
"""
返回
[
{'id': 5, 'score': '88'},
{'id': 10, 'score': '77'},
{'id': 12, 'score': '88'},
{'id': 24, 'score': '99'}
]
"""
多维度排序
# 方法一
sorted(datas, key=itemgetter("score", "id"))
# 方法二
sorted(
datas,
key=lambda e:(
e["id"],
e["score"]
)
)
sorted(
datas,
key=lambda e:(
e.__getitem__("id"),
e.__getitem__("score")
)
)
itemgetter 方法运行效率比 lambda 要快一些。除了排序之外,可同样适用于 min () 和 max() 等函数。