通过某个关键字排序一个字典列表
1. 通过使用operator模块的itemgetter函数可以很容易的排序,
- itemgetter()也支持多个key值
from operator import itemgetter rows = [ {'fname': 'Brian', 'lname': 'Jones', 'uid': 1003}, {'fname': 'David', 'lname': 'Beazley', 'uid': 1002}, {'fname': 'John', 'lname': 'Aleese', 'uid': 1001}, {'fname': 'Big', 'lname': 'Jones', 'uid': 1004} ] rows_fname = sorted(rows,key=itemgetter('fname')) #根据字母顺序或者是数字大小来排 print(rows_fname) #[{'fname': 'Big', 'lname': 'Jones', 'uid': 1004},{'fname': 'Brian', 'lname': 'Jones', 'uid': 1003},{'fname': 'David', 'lname': 'Beazley', 'uid': 1002},{'fname': 'John', 'lname': 'Aleese', 'uid': 1001}]
- itemgetter有时还可以用lambda代替
rows_by_fname = sorted(rows,key=lambda d:d['fname'])
2.也同样适用于min(),max()函数
a = max(rows, key=itemgetter('uid')) print(a) #{'fname': 'Big', 'lname': 'Jones', 'uid': 1004}
微笑向暖安之若素,你若盛开清风自来

浙公网安备 33010602011771号