Как сортировать даты в python?

Пользователь

от carlo.cummerata , в категории: Python , 2 года назад

Как сортировать даты в python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от NicolasSsh , 2 года назад

@carlo.cummerata  Вы можете воспользоваться методом sorted() и лямбда-выражением.


1
2
3
4
5
6
7
8
9
from datetime import datetime

array = ["2022-01-07 11:14:21", "2025-02-01 23:15:22", "2021-06-05 21:40:19"]

array = sorted(array, key=lambda x: datetime.strptime(x, '%Y-%m-%d %H:%M:%S'), reverse=False)

print(array)

# Вывод : ['2021-06-05 21:40:19', '2022-01-07 11:14:21', '2025-02-01 23:15:22']

Пользователь

от jensen , год назад

@carlo.cummerata 

В Python даты можно отсортировать, используя функцию sorted() или метод sort(). При этом, нужно убедиться, что даты представлены в правильном формате и имеют одинаковую длину.


Допустим, у нас есть список дат в формате строк:

1
dates = ['2022-01-15', '2023-03-16', '2021-12-31']


Чтобы отсортировать его по возрастанию, можно использовать следующий код:

1
2
sorted_dates = sorted(dates)
print(sorted_dates)


Этот код выведет следующий результат:

1
['2021-12-31', '2022-01-15', '2023-03-16']


Если нужно отсортировать список дат в порядке убывания, можно добавить аргумент reverse=True:

1
2
sorted_dates_descending = sorted(dates, reverse=True)
print(sorted_dates_descending)


Этот код выведет следующий результат:

1
['2023-03-16', '2022-01-15', '2021-12-31']


Также можно использовать метод sort() для сортировки списка дат в порядке возрастания:

1
2
dates.sort()
print(dates)


Этот код также выведет отсортированный список:

1
['2021-12-31', '2022-01-15', '2023-03-16']


В обоих случаях даты отсортированы по значению, а не по алфавитному порядку строк.