按格式化为字符串的键对python字典进行排序

zpe*_*esk 2 python sorting dictionary

我有一个字符串字符串作为格式为yyyy-mm-dd的键,并希望按最早的日期键排序字典:

我目前正在使用,sorted(datesAndText.keys())但这并不可靠,因为月和日字段并不总是零填充.

按日期键查看了排序python字典,如果我的日期是字符串,如何在Python中对此列表进行排序?但我似乎无法通过具体案例采纳它们.

mgi*_*son 8

你确定你的密钥完全符合格式yyyy-mm-dd吗?例如:

>>> '2010-1-15' < '2010-02-15'
False
Run Code Online (Sandbox Code Playgroud)

您可能被迫对此进行排序:

sorted(d,key=lambda x: [int(y) for y in x.split('-')])
Run Code Online (Sandbox Code Playgroud)

另一个解决方案(假设您的年份都是4位数):

sorted(d,key=lambda x: [y.zfill(2) for y in x.split('-')]) 
Run Code Online (Sandbox Code Playgroud)

我不确定哪个更快.我想这是一个候选人timeit.