Сортировать список URL-адресов по компоненту даты и времени - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть список URL-адресов, которые содержат несколько компонентов datetime.

urls = [ www.google.com/2018-10-26/2018-10-26T11:07:10.000Z, www.google.com//2018-10-26/2018-10-26T11:09:18.000Z]

Я хочу отсортировать его, а затем вернуть список обратно так:

urls = [ www.google.com/2018-10-26/2018-10-26T11:09:18.000Z, www.google.com//2018-10-26/2018-10-26T11:07:10.000Z]

Поскольку первый элемент имеет 2018-10-26T11: 09: 18.000Z, он больше, чем 2018-10-26T11: 07: 10.000Z. Есть ли способ сделать это в понимании списка? Я предполагаю, что это правильный путь:

for url in urls:
   date = url.split('/')[2]

Но не уверен, что делать дальше.

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

Вы можете отсортировать список, используя функцию для определения ключа сортировки. Например:

urls = ['www.google.com/2018-10-26/2018-10-26T11:07:10.000Z', 'www.google.com//2018-10-26/2018-10-26T11:09:18.000Z']

sorted_urls = sorted(urls, key=lambda x: x.split('/')[-1], reverse=True)
print(sorted_urls)
# OUTPUT
# ['www.google.com//2018-10-26/2018-10-26T11:09:18.000Z', 'www.google.com/2018-10-26/2018-10-26T11:07:10.000Z']
0 голосов
/ 14 ноября 2018

Вы можете отсортировать ваши URL-адреса на месте по временной метке (то есть последнему элементу после косой черты) в обратном порядке (самый последний сначала) с помощью:

urls.sort(key=lambda url: url.split('/')[-1], reverse=True)
...