@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'] |
@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'] |
В обоих случаях даты отсортированы по значению, а не по алфавитному порядку строк.