gpt4 book ai didi

python - 对包含日期作为子字符串的列表进行排序

转载 作者:太空宇宙 更新时间:2023-11-04 05:53:18 25 4
gpt4 key购买 nike

我有一个类似这样的字符串列表 正如您所看到的那样,字符串的开头嵌入了一个日期,并且 在字符串的末尾。

 a = ["08/19/2014100%ABC10/02/2014F","02/12/2012100%ABC10/02/2014F",
"08/29/2014100%ABC10/02/2012F"]

我想根据日期子字符串对这个列表进行排序。

我想实现的方式是提取日期,对日期进行排序并将日期与子字符串连接起来,但它变得太复杂了。

最佳答案

只需调用 sorted() 并将 key 参数设置为一个函数,该函数会从字符串中提取日期并将其转换为 datetime.datetime 对象。

>>> from datetime import datetime
>>> a = ["08/19/2014100%ABC10/02/2014F","02/12/2012100%ABC10/02/2014F", "08/29/2014100%ABC10/02/2012F"]
>>> sorted_a = sorted(a, key=lambda s: datetime.strptime(s[:10], '%m/%d/%Y'))
>>> sorted_a
['02/12/2012100%ABC10/02/2014F', '08/19/2014100%ABC10/02/2014F', '08/29/2014100%ABC10/02/2012F']

或者,如果你想就地排序:

>>> a.sort(key=lambda s: datetime.strptime(s[:10], '%m/%d/%Y'))
>>> a
['02/12/2012100%ABC10/02/2014F', '08/19/2014100%ABC10/02/2014F', '08/29/2014100%ABC10/02/2012F']

如果你真的想对字符串中的最后一个日期进行排序,只需将键函数更改为:

lambda s: datetime.strptime(s[-11:-1], '%m/%d/%Y')

关于python - 对包含日期作为子字符串的列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29070094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com