python 字典比较

查看:90
本文介绍了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"
      }]

解决方案

在上次问的问题里改sum成max:

from collections import defaultdict
grouped = 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]

这篇关于python 字典比较的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆