26 lines
833 B
Python
26 lines
833 B
Python
|
# 我们有一个字典列表,想要按照字典里的某些键对列表进行排序
|
|||
|
# 字典列表如下:
|
|||
|
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}
|
|||
|
]
|
|||
|
|
|||
|
# 这时候用到itemgetter模块
|
|||
|
from operator import itemgetter
|
|||
|
|
|||
|
# itemgetter的主要功能是通过可查询的标记进行数据获取;
|
|||
|
# 下面分别根据fname和uid进行数据获取
|
|||
|
|
|||
|
rows_by_fname = sorted(rows, key=itemgetter("fname"))
|
|||
|
rows_by_uid = sorted(rows, key=itemgetter("uid"))
|
|||
|
|
|||
|
print(rows_by_fname)
|
|||
|
print(rows_by_uid)
|
|||
|
|
|||
|
# 当然,itemgetter也能被lambda函数替代,替代操作如下:
|
|||
|
|
|||
|
rows_by_fname_v2 = sorted(rows, key= lambda row: row["fname"])
|
|||
|
print(rows_by_fname_v2)
|