对包含日期和时间字符串元素的列表进行排序

2024-09-30 18:34:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要帮助按日期和时间排序列表,日期和时间都是我列表中的字符串字段。在

myList = ['item1', 'item2', 'mm/dd/yy', 'hh:mmAM', 'item3'] 

我使用的是python2.4.3。在

我使用Bob Swift CLI从Atlassian的汇流处提取页面信息并放入一个列表中,这样就可以对其进行排序,以首先显示最旧的页面。在

样本数据:

pageList=“['页面标题','383551192','298288254','dt206xxx','1/7/16 1:05 PM,'dt206xxx','1/7/16','1:16PM,','http://xx.xxx.xx.xx:8xxx/display/mine/PageTitle'”

我需要在元素6的最后修改日期和时间7进行排序。在


Tags: 字符串列表排序hh时间页面ddmm
1条回答
网友
1楼 · 发布于 2024-09-30 18:34:59

你需要把你的数据放在一个列表里,我想你可能会这样做。我改变了pageList,使每个内部列表都有不同的时间。现在我们可以使用python的sort(),但我们必须提供自己的compare函数。所以我们有了页面列表.排序(mySort)sort()传递两个列表项进行比较。这里的每一项都是一个内部列表。我们需要将元素6和7组合起来形成一个日期时间字符串;然后将其转换为python日期时间,以便对它们进行比较。在

由于元组很长,我只在排序后从内部列表中打印出日期和时间值,以显示它是有效的。在

import datetime

pageList =[['Page Title', '383551192', '298288254', 'dt206xxx', '1/7/16 1:05 PM', 'dt206xxx', '1/7/16', '1:56PM', '2', 'http://xx.xxx.xx.xx:8xxx/display/mine/PageTitle'],
           ['Page Title', '383551192', '298288254', 'dt206xxx', '1/7/16 1:05 PM', 'dt206xxx', '1/7/16', '1:46PM', '2', 'http://xx.xxx.xx.xx:8xxx/display/mine/PageTitle'],
           ['Page Title', '383551192', '298288254', 'dt206xxx', '1/7/16 1:05 PM', 'dt206xxx', '1/7/16', '1:56PM', '2', 'http://xx.xxx.xx.xx:8xxx/display/mine/PageTitle'],
           ['Page Title', '383551192', '298288254', 'dt206xxx', '1/7/16 1:05 PM', 'dt206xxx', '1/7/16', '1:16PM', '2', 'http://xx.xxx.xx.xx:8xxx/display/mine/PageTitle'],
           ['Page Title', '383551192', '298288254', 'dt206xxx', '1/7/16 1:05 PM', 'dt206xxx', '1/7/16', '1:36PM', '2', 'http://xx.xxx.xx.xx:8xxx/display/mine/PageTitle']]

def mySort(a,b):
    c = a[6] + ' ' + a[7]
    d = b[6] + ' ' + b[7]
    date1 = datetime.datetime.strptime(c, '%m/%d/%y %I:%M%p')
    date2 = datetime.datetime.strptime(d, '%m/%d/%y %I:%M%p')
    return cmp(date1, date2)

if __name__ == '__main__':
    pageList.sort(mySort)
    for i in range(len(pageList)):
        print i,pageList[i][6],' ',pageList[i][7]  

输出:
2016年1月7日下午1:16
2016年1月7日下午1:36
2016年7月2日下午1:46
2016年7月31日下午1:56
2016年7月4日下午1:56

相关问题 更多 >