排序

2022-11-17
  • 字符串排序
  • 列表排序
  • 字典排序

字典列表排序

列表嵌套字典

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() 等函数。

参考