python list元素为dict时的排序
来源:互联网 发布:docker安装windows 10 编辑:程序博客网 时间:2024/06/05 16:00
# 简单的dict
lst = [('d', 2), ('a', 4), ('b', 3), ('c', 2)]
# 按照value排序
lst.sort(key=lambda k: k[1])
print lst
# 按照key排序
lst.sort(key=lambda k: k[0])
print lst
# 先按value排序再按key排序
lst.sort(key=lambda k: (k[1], k[0]))
print lst
# 输出---->>>
[('d', 2), ('c', 2), ('b', 3), ('a', 4)]
[('a', 4), ('b', 3), ('c', 2), ('d', 2)]
[('c', 2), ('d', 2), ('b', 3), ('a', 4)]
[('a', 4), ('b', 3), ('c', 2), ('d', 2)]
[('c', 2), ('d', 2), ('b', 3), ('a', 4)]
# 复杂的dict
lst = [{'level': 19, 'star': 36, 'time': 1},
{'level': 20, 'star': 40, 'time': 2},
{'level': 20, 'star': 40, 'time': 3},
{'level': 20, 'star': 40, 'time': 4},
{'level': 20, 'star': 40, 'time': 5},
{'level': 18, 'star': 40, 'time': 1}]
# 需求:
# level越大越靠前;
# level相同, star越大越靠前;
# level和star相同, time越小越靠前;
# 先按time排序
lst.sort(key=lambda k: (k.get('time', 0)))
# 再按照level和star顺序
lst.sort(key=lambda k: (k.get('level', 0), k.get('star', 0)), reverse=True)
for idx, r in enumerate(lst):
print 'idx[%d]\tlevel: %d\t star: %d\t time: %d\t' % (idx, r['level'], r['star'],r['time'])
# 输出---->>>
idx[0] level: 20 star: 40 time: 2
idx[1] level: 20 star: 40 time: 3
idx[2] level: 20 star: 40 time: 4
idx[3] level: 20 star: 40 time: 5
idx[4] level: 19 star: 36 time: 1
idx[5] level: 18 star: 40 time: 1
idx[1] level: 20 star: 40 time: 3
idx[2] level: 20 star: 40 time: 4
idx[3] level: 20 star: 40 time: 5
idx[4] level: 19 star: 36 time: 1
idx[5] level: 18 star: 40 time: 1
1 2
- python list元素为dict时的排序
- python list里面是dict时排序
- python dict list 排序专题
- Python 中的None以及 == 与 is 的区别,以及判断某个list或者dict元素是否为None
- python list强制转化为dict的时候
- python整理二——dict的list排序
- Python List、Dict等的sort与sorted排序
- python 对key为时间的dict排序
- python中dict和list排序
- python中dict和list排序
- python中dict和list排序
- python 中的dict和list 排序
- Python笔记--String、list、dict排序
- python 获取list tuple dict中最大和最小元素的操作
- python中为list中含list元素指定偏移key量及次偏移量的排序算法
- python 中list dict tuple的比较
- Python - list, tuple, dict, set的区别
- 【python系列】dict、list的中文显示
- 关于结构体的操作符重载和定义在内部的函数
- MyEclipse10.x添加jadClipse反编译插件
- 2015暑期多校训练第一场 1,2,3
- ios开发之多线程--GCD介绍
- Linux 硬限制和软限制 http://www.52ml.net/2624.html
- python list元素为dict时的排序
- Repeated DNA Sequences —— Leetcode(教训,重做)
- hdu 1067 Gap+BFS+hash
- LA 4670 Dominating Patterns (ac自动机)
- C语言hash函数
- USACO 1.3 Mixing Milk
- 树中最长路径 树形DP HDU 3534 Tree
- STM32 无线下载程序(非IAP)
- iOS开发问题之the file “XXX” could not be opened because you don't have permission to view it