Просто для добавления другого способа (даже если для этого требуется дополнительный модуль): iteration_utilities.all_monotone
:
>>> from iteration_utilities import all_monotone
>>> listtimestamps = [1, 2, 3, 5, 6, 7]
>>> all_monotone(listtimestamps)
True
>>> all_monotone([1,2,1])
False
Для проверки заказа DESC:
>>> all_monotone(listtimestamps, decreasing=True)
False
>>> all_monotone([3,2,1], decreasing=True)
True
Существует также параметр strict
, если необходимо строго проверить (если последовательные элементы не должны быть равными) монотонные последовательности.
В вашем случае это не проблема, но , если ваша последовательность содержит nan
значений, то некоторые методы не будут работать, например, с сортировкой:
def is_sorted_using_sorted(iterable):
return sorted(iterable) == iterable
>>> is_sorted_using_sorted([3, float('nan'), 1]) # definetly False, right?
True
>>> all_monotone([3, float('nan'), 1])
False
Обратите внимание, что iteration_utilities.all_monotone
работает быстрее по сравнению с другими решениями, упомянутыми здесь, особенно для несортированных входов (см. тест ).