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

标签 python sorting dictionary

我有一个以字符串为键的字典,格式为 yyyy-mm-dd,我想按键对字典进行排序,日期最早的排在最前面:

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

我看过Sort python dictionary by date keysHow do I sort this list in Python, if my date is in a String?但我似乎无法根据具体情况采用它们。

最佳答案

您确定您的 key 完全采用 yyyy-mm-dd 格式吗?例如:

>>> '2010-1-15' < '2010-02-15'
False

你可能被迫这样排序:

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

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

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

我不确定哪个会更快。我想它是 timeit 的候选对象。

关于python - 按格式化为字符串的键对 python 字典进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12820960/

相关文章:

java - 对数字 1-10 进行排序,以拼写形式存储在 java 的数组列表中

function - Scala Map,元组和函数参数列表之间的歧义

python - 模板语法错误 : 'if' statement improperly formatted

Python Pandas 不读取 csv 文件的第一行

sorting - 对具有负值和正值的整数和 float 列表进行排序?

python - 如何使用 pandas groupby 对某些行进行降序排序,对某些行进行升序排序

python - Scipy 的 pdist 相关指标与 numpy corrcoef 不同

python - 你如何在 flask-sqlalchemy 中更新多个值?

ios - 'NSInternalInconsistencyException',原因 : 'attempt to insert row 4 into section 0, but there are only 4 rows in section 0 after the update'

Python Argparse 多次使用相同的参数