Список вида согласно данному распоряжению индексов

У меня есть список строк, считанных из файла. Я должен отсортировать список по метке времени. Я проанализировал метку времени с помощью регулярных выражений и размещаю их в отдельный список. Индексы двух списков будут соответствовать. После того как я сортирую список меток времени, я могу получить порядок индексов.

Существует ли способ применить тот же порядок индексов к исходному списку строк? Результатом должен быть отсортированный список исходных строк.

Пример:

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]
8
задан Seanny123 11 May 2017 в 09:39
поделиться

3 ответа

Думаю, вы могли бы сделать

[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)
8
ответ дан 5 December 2019 в 05:02
поделиться
sorted(zip(listofTimes, listofLines))
2
ответ дан 5 December 2019 в 05:02
поделиться
[listofLines[i] for i in sortedIndex]
25
ответ дан 5 December 2019 в 05:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: