Задать вопрос

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

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

На вход функции подается список, задача выводить "True" если введенный параметр изначально был сортирован по возрастанию.
  • Вопрос задан
  • 241 просмотр
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Python-разработчик
    9 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Метод .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 после сортировки
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы