python dict order by key 字典关键字排序
来源:互联网 发布:淘宝星期四官换机知乎 编辑:程序博客网 时间:2024/05/18 19:20
from operator import itemgetter
通过使用operator模块的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}]
根据任意的字典字段来排序输入结果行是很容易实现的,代码示例:
from operator import itemgetterrows_by_fname = sorted(rows, key=itemgetter('fname'))rows_by_uid = sorted(rows, key=itemgetter('uid'))print(rows_by_fname)print(rows_by_uid)
代码的输出如下:
[{'fname': 'Big', 'uid': 1004, 'lname': 'Jones'},{'fname': 'Brian', 'uid': 1003, 'lname': 'Jones'},{'fname': 'David', 'uid': 1002, 'lname': 'Beazley'},{'fname': 'John', 'uid': 1001, 'lname': 'Cleese'}][{'fname': 'John', 'uid': 1001, 'lname': 'Cleese'},{'fname': 'David', 'uid': 1002, 'lname': 'Beazley'},{'fname': 'Brian', 'uid': 1003, 'lname': 'Jones'},{'fname': 'Big', 'uid': 1004, 'lname': 'Jones'}]
itemgetter()函数也支持多个keys,比如下面的代码
rows_by_lfname = sorted(rows, key=itemgetter('lname','fname'))print(rows_by_lfname)
会产生如下的输出:
[{'fname': 'David', 'uid': 1002, 'lname': 'Beazley'},{'fname': 'John', 'uid': 1001, 'lname': 'Cleese'},{'fname': 'Big', 'uid': 1004, 'lname': 'Jones'},{'fname': 'Brian', 'uid': 1003, 'lname': 'Jones'}]
0 0
- python dict order by key 字典关键字排序
- python dict 按key排序
- 【Python基础】之对字典进行排序操作(sort by the values of dict)
- python 字典(dict)按值排序
- python 字典(dict)按键和值排序
- python 字典(dict)按键和值排序
- python 字典(dict)按键和值排序
- python 3.0 字典 key 排序
- python dict reg key
- Python中dict 字典
- python dict字典
- python dict字典
- python dict字典
- Python dict 字典
- python 字典 dict
- Python基础-dict字典
- python字典dict
- Python中的字典dict
- 开源项目整理
- Cordova 3.x 基础(4) -- deviceready事件
- Android Library Project 工程依赖:manifestmerger.enabled=true
- 将Pdf文件转换为Word
- 5-14 数据结构啊poi C.交错和
- python dict order by key 字典关键字排序
- BZOJ 3996: [TJOI2015]线性代数
- 小试刀刀
- Linux 系统目录结构
- 工厂模式和抽象工厂模式-设计模式
- c++空类实例大小不是0原因
- 【JAVA】重写和重载
- [LeetCode]*85.Maximal Rectangle
- 给定N是一个正整数,求比N大的最小“不重复数”,这里的不重复是指没有两个相等的相邻位,如1102中的11是相等的两个相邻位故不是不重复数,而12301是不重复数。