• 字符串排序
  • 列表排序
  • 字典排序

字典列表排序

列表嵌套字典

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

参考