如果我的日期是字符串,我如何在Python中对此列表进行排序?

TIM*_*MEX 13 python dictionary list

[{'date': '2010-04-01', 'people': 1047, 'hits': 4522}, {'date': '2010-04-03', 'people': 617, 'hits': 2582}, {'date': '2010-04-02', 'people': 736, 'hits': 3277}]
Run Code Online (Sandbox Code Playgroud)

假设我有这个清单.如何按"日期"排序,这是字典中的项目.但是,"日期"是一个字符串......

Ign*_*ams 32

.sort(key=lambda x: datetime.datetime.strptime(x['date'], '%Y-%m-%d'))
Run Code Online (Sandbox Code Playgroud)

  • 大多数`list`方法就地工作,而不是返回列表. (9认同)
  • 这看起来很酷但我尝试时得到了"无"的答案! (2认同)
  • 我喜欢这个答案的灵活性.就我而言,我不得不求助于'%m /%d /%Y'. (2认同)

Ale*_*lli 23

幸运的是,ISO格式的日期,这似乎是你在这里,与字符串完全吻合!所以你不需要花哨的东西:

import operator
yourlistofdicts.sort(key=operator.itemgetter('date'))
Run Code Online (Sandbox Code Playgroud)


dam*_*zam 12

Satoru.Logic的解决方案简洁明了.但是,根据Alex的帖子,你不需要操纵日期字符串来使排序顺序正确...所以失去了.split('-')

这段代码就足够了:

records.sort(key=lambda x:x['date'])
Run Code Online (Sandbox Code Playgroud)