python 从日期列表中选出最大的_python中如何按日期对字典值列表进行排序?

本文介绍了如何利用Python的operator模块中的itemgetter和attrgetter函数来对自定义的数据结构进行排序,特别是针对包含日期字段的情况。通过示例展示了如何对包含'title'和'date'字段的Row对象列表进行逆序排序。
摘要由CSDN通过智能技术生成

from operator import itemgetter

your_list.sort(key=itemgetter('date'), reverse=True)

例子:>>> lst = [Row('a', 1), Row('b', 2)]

>>> lst.sort(key=itemgetter(1), reverse=True)

>>> lst

[Row(title='b', date=2), Row(title='a', date=1)]

或>>> from operator import attrgetter

>>> lst = [Row('a', 1), Row('b', 2)]

>>> lst.sort(key=attrgetter('date'), reverse=True)

>>> lst

[Row(title='b', date=2), Row(title='a', date=1)]

namedtuple介绍:>>> Row = namedtuple('Row', 'title date', verbose=True)

class Row(tuple):

'Row(title, date)'

__slots__ = ()

_fields = ('title', 'date')

def __new__(cls, title, date):

return tuple.__new__(cls, (title, date))

@classmethod

def _make(cls, iterable, new=tuple.__new__, len=len):

'Make a new Row object from a sequence or iterable'

result = new(cls, iterable)

if len(result) != 2:

raise TypeError('Expected 2 arguments, got %d' % len(result))

return result

def __repr__(self):

return 'Row(title=%r, date=%r)' % self

def _asdict(t):

'Return a new dict which maps field names to their values'

return {'title': t[0], 'date': t[1]}

def _replace(self, **kwds):

'Return a new Row object replacing specified fields with new values'

result = self._make(map(kwds.pop, ('title', 'date'), self))

if kwds:

raise ValueError('Got unexpected field names: %r' % kwds.keys())

return result

def __getnewargs__(self):

return tuple(self)

title = property(itemgetter(0))

date = property(itemgetter(1))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值