key of sort itemgetter

lambda


from operator import itemgetter

rows = [
    {"fname": "Brian", "lname": "Jones", "uid": 1003},
    {"fname": "David", "lname": "Beazley", "uid": 1002},
    {"fname": "John", "lname": "Cleese", "uid": 1001},
    {"fname": "Big", "lname": "Jones", "uid": 1004}
]

rows_by_fname = sorted(rows, key=lambda r: r["fname"])
rows_by_lfname = sorted(rows, key=lambda r: (r["lname"], r["fname"]))

itemgetter 代替 lambda


使用 itemgetter() 方式会运行的稍微快点

from operator import itemgetter

rows = [
    {"fname": "Brian", "lname": "Jones", "uid": 1003},
    {"fname": "David", "lname": "Beazley", "uid": 1002},
    {"fname": "John", "lname": "Cleese", "uid": 1001},
    {"fname": "Big", "lname": "Jones", "uid": 1004}
]

rows_by_fname = sorted(rows, key=itemgetter("fname"))
print(rows_by_fname)

rows_by_lfname = sorted(rows, key=itemgetter("lname", "fname"))
print(rows_by_lfname)