Python cookbook(数据结构与算法)通过公共键对字典列表排序算法
发布时间:2020-12-17 07:20:11 所属栏目:Python 来源:网络整理
导读:本篇章节讲解Python通过公共键对字典列表排序算法。供大家参考研究具体如下: 问题: 想根据一个或多个字典中的值来对列表排序 解决方案: 利用operator模块中的 itemgetter() 函数对这类结构进行排序是非常简单的。 # Sort a list of a dicts on
本篇章节讲解Python通过公共键对字典列表排序算法。分享给大家供大家参考,具体如下: 问题:想根据一个或多个字典中的值来对列表排序 解决方案:利用operator模块中的 # Sort a list of a dicts on a common key rows = [ {'fname': 'Brian','lname': 'Jones','uid': 1003},{'fname': 'David','lname': 'Beazley','uid': 1002},{'fname': 'John','lname': 'Cleese','uid': 1001},{'fname': 'Big','uid': 1004} ] from operator import itemgetter rows_by_fname = sorted(rows,key=itemgetter('fname')) rows_by_uid = sorted(rows,key=itemgetter('uid')) from pprint import pprint print("Sorted by fname:") pprint(rows_by_fname) #pprint模块的pprint()提供了打印出任何python数据结构类和方法。 print("Sorted by uid:") pprint(rows_by_uid) rows_by_lfname = sorted(rows,key=itemgetter('lname','fname')) print("Sorted by lname,fname:") pprint(rows_by_lfname) >>> ================================ RESTART ================================ >>> Sorted by fname: [{'fname': 'Big','uid': 1004},{'fname': 'Brian','uid': 1001}] Sorted by uid: [{'fname': 'John','uid': 1004}] Sorted by lname,fname: [{'fname': 'David','uid': 1003}] >>> 补充说明: 有时候会利用lambda表达式来取代 rows_by_fname = sorted(rows,key=lambda r:r['fname']) rows_by_uid = sorted(rows,key=lambda r:r['uid']) 最后,本节展示的技术同样适用于 >>> min(rows,key=itemgetter('uid')) {'lname': 'Cleese','fname': 'John','uid': 1001} >>> max(rows,key=itemgetter('uid')) {'lname': 'Jones','fname': 'Big','uid': 1004} >>> itemgetter('uid') <operator.itemgetter object at 0x023532F0> >>> (代码摘自《Python Cookbook》) 更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》 希望本文所述对大家Python程序设计有所帮助。 您可能感兴趣的文章:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |