У меня есть список строк, считанных из файла. Я должен отсортировать список по метке времени. Я проанализировал метку времени с помощью регулярных выражений и размещаю их в отдельный список. Индексы двух списков будут соответствовать. После того как я сортирую список меток времени, я могу получить порядок индексов.
Существует ли способ применить тот же порядок индексов к исходному списку строк? Результатом должен быть отсортированный список исходных строк.
Пример:
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]
Думаю, вы могли бы сделать
[line for (time,line) in sorted(zip(listofTimes, listofLines))]
Но если у вас есть (или вы можете написать) функцию для автоматического извлечения времени из строки,
def extract_time(line):
...
return time
вы также можете сделать
listofLines.sort(key=extract_time)
или если вы хотите сохранить исходный список неповрежденный,
sorted(listofLines, key=extract_time)