python列表字典排序
2017-08-01 00:00
417 查看
摘要: python列表字典排序
备注:
方法三只是方法二的一个匿名函数方法,表达比较优雅而已。
方法一是最优雅的,用到
但是是有缺陷的,例如:
当csv1某列字典里面的key不存在时,就会报错:
Traceback (most recent call last):
File "D:/python_learning/test/����������/atest1.py", line 9, in <module>
csv1.sort(key=itemgetter('num', 'name'), reverse=True)
KeyError: 'name'
#!user/bin/python # encoding:utf-8 from operator import itemgetter # 方法一 csv1 = [{"name": "b", "num": 3}, {"name": "a", "num": 1}, {"name": "c", "num": 2}, {"name": "d", "num": 3}] csv1.sort(key=itemgetter('num', 'name'), reverse=True) print csv1 # 方法二 csv2 = [{"name": "b", "num": 3}, {"name": "a", "num": 1}, {"name": "c", "num": 2}, {"name": "d", "num": 3}, {"num": 3}, {"name": "a"}] def sortKeyFun(x): xList = ["num", "name"] return tuple(x.get(ca) for ca in xList) csv2.sort(key=sortKeyFun, reverse=True) print csv2 # 方法三 csv3 = [{"name": "b", "num": 3}, {"name": "a", "num": 1}, {"name": "c", "num": 2}, {"name": "d", "num": 3}, {"num": 3}, {"name": "a"}] def mysortedByKeyList(dictList, keyList): dictList.sort(key=lambda x: tuple(x.get(ca) for ca in keyList), reverse=True) return dictList keyList = ["num", "name"] print mysortedByKeyList(csv3, keyList)
备注:
方法三只是方法二的一个匿名函数方法,表达比较优雅而已。
方法一是最优雅的,用到
operator.itemgetter
但是是有缺陷的,例如:
# 方法一 csv1 = [{"name": "b", "num": 3}, {"name": "a", "num": 1}, {"name": "c", "num": 2}, {"name": "d", "num": 3}, {"num": 3}, {"name": "a"}] csv1.sort(key=itemgetter('num', 'name'), reverse=True) print csv1
当csv1某列字典里面的key不存在时,就会报错:
Traceback (most recent call last):
File "D:/python_learning/test/����������/atest1.py", line 9, in <module>
csv1.sort(key=itemgetter('num', 'name'), reverse=True)
KeyError: 'name'
相关文章推荐
- Python中 字典排序、列表排序
- Python中 字典排序、列表排序
- Python中 字典排序、列表排序
- Python中 字典排序、列表排序
- python列表,字典排序
- python中列表和字典排序
- python 字典排序,列表排序详细
- python的排序函数sort,sorted在列表排序和字典排序中的应用详解和举例
- Python中 字典排序、列表排序
- python的排序函数sort,sorted在列表排序和字典排序中的应用详解和举例
- Python列表或字典排序
- python中的列表
- Debian Linux下的Python学习——列表,元组和字典之列表
- python语言打印含有中文的列表技巧
- python列表简单介绍
- Python内置容器(2)——字典,迭代器,列表解析
- python第23篇之--列表操作
- python 列表函数
- python基础系列教程——数据结构(列表、元组、字典、集合、链表)
- python面试题之列表声明