Han*_*nah 8 python sorting list
我有一个从文件中读取的行列表.我需要按时间戳对列表进行排序.我使用正则表达式解析了时间戳,并将它们放在一个单独的列表中.两个列表的索引将匹配.一旦我对时间戳列表进行排序,我就可以得到索引的顺序.
有没有办法将相同的索引顺序应用于原始行列表?结果应该是原始行的排序列表.
例:
listofLines = ['log opened 16-Feb-2010 06:37:56 UTC',
'06:37:58 Custom parameters are in use',
'log closed 16-Feb-2010 05:26:47 UTC']
listofTimes = ['06:37:56', '06:37:58', '05:26:47']
sortedIndex = [2,0,1]
Run Code Online (Sandbox Code Playgroud)
我想你可以做到
[line for (time,line) in sorted(zip(listofTimes, listofLines))]
Run Code Online (Sandbox Code Playgroud)
但是如果你有(或可以写)一个函数来自动从行中提取时间,
def extract_time(line):
...
return time
Run Code Online (Sandbox Code Playgroud)
你也可以这样做
listofLines.sort(key=extract_time)
Run Code Online (Sandbox Code Playgroud)
或者如果你想保持原始列表完整,
sorted(listofLines, key=extract_time)
Run Code Online (Sandbox Code Playgroud)