python 字典比較
問題描述
一個列表當中有一個日期的值,我想求這個日期里面當天最大時間的那一條,大神們如何寫呢?原始列表`
[{ 'count': 0, 'create_time': '2017-03-22 22:00:00', 'level': '1' }, { 'count': 5, 'create_time': '2017-03-22 22:00:00', 'level': '0' }, { 'count': 5, 'create_time': '2017-03-22 22:00:00', 'level': '2' }, { 'count': 5, 'create_time': '2017-03-22 23:00:00', 'level': '0' }, { 'count': 0, 'create_time': '2017-03-22 23:00:00', 'level': '1' }, { 'count': 5, 'create_time': '2017-03-22 23:00:00', 'level': '2' }]`
想要輸出的列表
[{'count': 5,'create_time': '2017-03-22 23:00:00','level': '0' }, {'count': 0,'create_time': '2017-03-22 23:00:00','level': '1' }, {'count': 5,'create_time': '2017-03-22 23:00:00','level': '2' }]
問題解答
回答1:在上次問的問題里改sum成max:
from collections import defaultdictgrouped = defaultdict(list)for d in s: grouped[(d[’create_time’].split()[0], d[’level’])].append((d[’create_time’], d[’count’]))summed = {k : max(grouped[k]) for k in grouped}s = [{’count’: summed[k][1], ’create_time’: summed[k][0], ’level’: k[1]} for k in summed]回答2:
像這類問題都可以用groupby來解決
# coding: utf-8from itertools import groupbydata = [...]fun_group = lambda x: x[’level’]fun_max = lambda x: x[’create_time’]lst = [max(list(g), key=fun_max) for k, g in groupby(sorted(data, key=fun_group), fun_group)]print lst回答3:
思路就是先排序,再過濾
ls = [{ 'count': 0, 'create_time': '2017-03-22 22:00:00', 'level': '1' }, { 'count': 5, 'create_time': '2017-03-22 22:00:00', 'level': '0' }, { 'count': 5, 'create_time': '2017-03-22 22:00:00', 'level': '2' }, { 'count': 5, 'create_time': '2017-03-22 23:00:00', 'level': '0' }, { 'count': 0, 'create_time': '2017-03-22 23:00:00', 'level': '1' }, { 'count': 5, 'create_time': '2017-03-22 23:00:00', 'level': '2' }]import timels.sort(key = lambda x: time.strptime(x['create_time'], '%Y-%m-%d %H:%M:%S'))ret = filter(lambda x: x[’create_time’] == ls[-1][’create_time’], ls)print ret'''[{’count’: 5, ’create_time’: ’2017-03-22 23:00:00’, ’level’: ’0’}, {’count’: 0, ’create_time’: ’2017-03-22 23:00:00’, ’level’: ’1’}, {’count’: 5, ’create_time’: ’2017-03-22 23:00:00’, ’level’: ’2’}]'''
相關文章:
1. python - django 里自定義的 login 方法,如何使用 login_required()2. python如何不改動文件的情況下修改文件的 修改日期3. angular.js - Angular路由和express路由的組合使用問題4. angular.js - angularjs 用ng-reapt渲染的dom 怎么獲取上面的屬性5. mysql優(yōu)化 - mysql count(id)查詢速度如何優(yōu)化?6. 主從備份 - 跪求mysql 高可用主從方案7. css3 - [CSS] 動畫效果 3D翻轉bug8. angular.js - 不適用其他構建工具,怎么搭建angular1項目9. mysql主從 - 請教下mysql 主動-被動模式的雙主配置 和 主從配置在應用上有什么區(qū)別?10. node.js - node_moduls太多了
![css3 - [CSS] 動畫效果 3D翻轉bug](http://www.cgvv.com.cn/attached/image/news/202304/110831f073.png)