Почему моя функция всё время возвращает «False»?

Подскажите пожалуйста, почему моя функция всё время выводит "False"?
def is_sorted(l):
    chek_list = l.sort()
    if chek_list == l:
        return "True"
    else:
        return "False"

На вход функции подается список, задача выводить "True" если введенный параметр изначально был сортирован по возрастанию.
  • Вопрос задан
  • 137 просмотров
Решения вопроса 1
@Vindicar
Метод .sort() списка сортирует список на месте, и возвращает None.
Если нужна отсортированная копия списка без изменения оригинала, функция sorted() в помощь.
А вообще, можно же ещё проще. Список сортируем по возрастанию? Тогда нужно убедиться что каждый следующий элемент больше предыдущего.
def is_sorted(lst) -> bool:
  for i in range(0, len(lst)-1)
    if lst[i] > lst[i+1]: #нашли элементы в неправильном порядке
      return False #значит не отсортирован
  # если сюда дошли, то отсортирован
  return True

Или то же самое но короче
def is_sorted(lst) -> bool:
  return all( lst[i] <= lst[i+1] for i in range(0, len(lst)-1) )
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
mmmaaak
@mmmaaak
Выведи в консоль то, что получается в check_list после сортировки
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы