gpt4 book ai didi

python - 按日期排序 Python 列表

转载 作者:太空宇宙 更新时间:2023-11-03 17:30:50 25 4
gpt4 key购买 nike

我有一个列表,其中包含人类可读形式的日期和日期格式,我正在尝试对其进行排序。

它无法返回正确的顺序。

d = ["10-8-2015@Mon, Aug 10, 2015", "11-8-2015@Tue, Aug 11, 2015", "12-8-2015@Wed, Aug 12, 2015","13-8-2015@Thu, Aug 13, 2015", "14-8-2015@Fri, Aug 14, 2015", "7-8-2015@Fri, Aug 07, 2015", "8-8-2015@Sat, Aug 08, 2015", "9-8-2015@Sun, Aug 09, 2015"]
>>> def sorting(L):
... splitup = L.split('-')
... return splitup[1], splitup[0]
...
>>> sorted(d, key=sorting)
['10-8-2015@Mon, Aug 10, 2015', '11-8-2015@Tue, Aug 11, 2015', '12-8-2015@Wed, Aug 12, 2015', '13-8-2015@Thu, Aug 13, 2015', '14-8-2015@Fri, Aug 14, 2015', '7-8-2015@Fri, Aug 07, 2015', '8-8-2015@Sat, Aug 08, 2015', '9-8-2015@Sun, Aug 09, 2015']

最佳答案

您可以使用time.strptime

>>> from time import strptime
>>> sorted(d, key = lambda i: strptime(i.split('@')[0], '%d-%m-%Y'))
['7-8-2015@Fri, Aug 07, 2015',
'8-8-2015@Sat, Aug 08, 2015',
'9-8-2015@Sun, Aug 09, 2015',
'10-8-2015@Mon, Aug 10, 2015',
'11-8-2015@Tue, Aug 11, 2015',
'12-8-2015@Wed, Aug 12, 2015',
'13-8-2015@Thu, Aug 13, 2015',
'14-8-2015@Fri, Aug 14, 2015']

基本上,您可以在 '@' 字符处进行拆分,然后所有字符串都可以用于创建 struct_time对象。您可以在 sortedkey 参数中使用 lambda 来按这些 struct_time 对象进行排序。

另请注意,您可以使用 reverse 参数反转排序顺序

>>> sorted(d, key = lambda i: strptime(i.split('@')[0], '%d-%m-%Y'), reverse=True)
['14-8-2015@Fri, Aug 14, 2015',
'13-8-2015@Thu, Aug 13, 2015',
'12-8-2015@Wed, Aug 12, 2015',
'11-8-2015@Tue, Aug 11, 2015',
'10-8-2015@Mon, Aug 10, 2015',
'9-8-2015@Sun, Aug 09, 2015',
'8-8-2015@Sat, Aug 08, 2015',
'7-8-2015@Fri, Aug 07, 2015']

关于python - 按日期排序 Python 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31876619/

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