Python 按日期排序列表

Python 按日期排序列表,python,python-2.7,sorting,Python,Python 2.7,Sorting,我的数据格式如下: [{'value':2,'year':u'2015'},{'value':4,'year':u'2016'},{'value':3,'year':u'2018'},{'value':0,'year':u'2017'},{'value':0,'year':u'2017'}] 我想按年分类。您能提供帮助吗?您需要指定排序时用于比较的键函数: my_data = sorted( my_data, key = lambda x : x["year"]) 您应该使用itemgette

我的数据格式如下:
[{'value':2,'year':u'2015'},{'value':4,'year':u'2016'},{'value':3,'year':u'2018'},{'value':0,'year':u'2017'},{'value':0,'year':u'2017'}]


我想按年分类。您能提供帮助吗?

您需要指定排序时用于比较的
函数:

my_data = sorted( my_data, key = lambda x : x["year"])

您应该使用
itemgetter
来:

>>> from operator import itemgetter
>>> data = [{'value': 2, 'year': u'2015'}, {'value': 4, 'year': u'2016'}, {'value': 3, 'year': u'2018'}, {'value': 0, 'year': u'2014'}, {'value': 0, 'year': u'2017'}]
>>> result = sorted(data, key=itemgetter('year'))
>>> print(result)
[{'value': 0, 'year': '2014'}, {'value': 2, 'year': '2015'}, {'value': 4, 'year': '2016'}, {'value': 0, 'year': '2017'}, {'value': 3, 'year': '2018'}]

也许你正在使用的数据结构(字典列表)不适合你想要实现的任何目标。@Tarik,我不这么认为,这确实是可行的。查看我关于
itemgetter
的答案,如果你有
987
这样的年份,字符串比较将中断。您可能需要使用:
lambda x:int(x['year'])
True,我的代码特定于此数据。