包含日期作为字符串的排序列表

dalam32401

我有以下清单

data = ['Sep 14, 2020', 'Sep 10, 2020', 'Sep 6, 2020', 'Aug 28, 2020', 
    'Aug 25, 2020', 'Aug 31, 2020', 'Aug 30, 2020', 'Aug 17, 2020', 
     'Nov 12, 2020', 'Dec 3, 2020', 'Dec 17, 2020', 'Dec 28, 2020', 'Dec 31, 2020']

我尝试过循环和匹配,如果元素中的日期将该元素设置为另一个元素之后,但我无法使其正常工作

我想从第一个月的一月到上个月的十二月对列表进行排序,但我什至不知道从哪里开始

斯威坦克·波达(Swetank Poddar)

中的元素data是字符串,因此,如果sort在列表上运行,它将按字母顺序排序。

您可以告诉sort函数将它们排序为日期。为此,您需要datetime.strptime像这样转换它们datetime.strptime(element, '%b %d, %Y')strptime 在此处了解更多信息

因此,您的排序功能变为:

data = ['Sep 14, 2020', 'Sep 10, 2020', 'Sep 6, 2020', 'Aug 28, 2020', 'Aug 25, 2020', 'Aug 31, 2020', 'Aug 30, 2020', 'Aug 17, 2020', 'Nov 12, 2020', 'Dec 3, 2020', 'Dec 17, 2020', 'Dec 28, 2020', 'Dec 31, 2020']

data.sort(key=lambda date: datetime.strptime(date, '%b %d, %Y'))
print(data)

输出:

['Aug 17, 2020', 'Aug 25, 2020', 'Aug 28, 2020', 'Aug 30, 2020', 'Aug 31, 2020', 'Sep 6, 2020', 'Sep 10, 2020', 'Sep 14, 2020', 'Nov 12, 2020', 'Dec 3, 2020', 'Dec 17, 2020', 'Dec 28, 2020', 'Dec 31, 2020']

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章