专栏首页Python程序员杂谈python对列表中的字典按[key]时间排序

python对列表中的字典按[key]时间排序

对一个列表中的字典进行按照时间进行排序,下面是实现代码:

#coding:utf-8
"""
    author:the5fire
    date:2012-10-10
    function:
        sort dict list by key
"""
import datetime

result_data = []
result_data.append({
    'id': 2,
    'create_time': '2012-10-8 11:09:22',
	})
result_data.append({
    'id': 3,
    'create_time': '2012-10-10 11:09:22',
    })
result_data.append({
    'id': 1,
    'create_time': '2012-10-1 11:09:22',
    })


def cmp_datetime(a, b):
    a_datetime = datetime.datetime.strptime(a, '%Y-%m-%d %H:%M:%S')
    b_datetime = datetime.datetime.strptime(b, '%Y-%m-%d %H:%M:%S')

    if a_datetime > b_datetime:
        return -1
    elif a_datetime < b_datetime:
        return 1
    else:
        return 0

import operator
print 'before',result_data
result_data.sort(cmp=cmp_datetime, key=operator.itemgetter('create_time'))
print 'after',result_data

你可以想到更好的方案吗?

补充:

在翻看之前的一些面试题,发现其中有一个问题就是对列表中的字典按照某个key进行排序,题目是这样的:

对[{'a':1,'b':2},{'b':3,'a':5}]按a进行排序?

按照上面的解决方案很简单:

t = [{'a':1,'b':2},{'b':3,'a':5}]

t.sort(key=operator.itemgetter('b')) - from the5fire.com

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • My97DatePicker中的bug[_ is null] fixed

    在使用My97DatePicker中发现一个bug:_ is null,把他的源代码美化一下(在线美化地址在我的“在线手册速查”中),发现作者里面有一个问题没有...

    the5fire
  • 由__future__中unicode_literals引起的错误来研究python中的编码问题

    在py2.7的项目中用了future模块中的 unicode_literals 来为兼容py3.x做准备,今天遇到一个UnicodeEncodeError的错误...

    the5fire
  • Django适合做大用户量的系统吗?

    做技术选型的时候不能单纯的考虑性能,应该优先考虑业务类型,以及团队水平。另外的话,框架只是其中一环,还有配套呢。

    the5fire
  • python基础—datetime模块

    dogfei
  • Python第三方库Delorean

    Delorean是Python里一个很方便的日期时间库,可以让人更简单省心的获取时间,不必受困于时间模块中的各种问题。

    周小董
  • Python中对时间日期的处理方法简单汇总

    这篇文章主要介绍了Python实用日期时间处理方法汇总,本文讲解了获取当前datetime、获取当天date、获取明天/前N天、获取当天开始和结束时间(00:0...

    用户1217611
  • Python 处理时间差

    1.计算两个时间相差多少天,或者几个小时,可以使用datetime模块解决这个问题

    我是李超人
  • Python datetime 格式化 明天,昨天实例

    还有另外一种方法,看着感觉笨一点,那就是调用toordinal()和fromordinal(),它们分别是得到自公元元年1月1日起的天数和用此天数获得日期:

    砸漏
  • python的datetime模块处理时

    python的datetime模块主要用来处理时间,里面包含很多类,包括timedelay,date,time,datetime等

    py3study
  • Python获取当前年月日

    py3study

扫码关注云+社区

领取腾讯云代金券