Сравнение списков с условными утверждениями - PullRequest
1 голос
/ 17 мая 2019

Я выполнил упражнение, в котором он хочет, чтобы я возвратил True, если список отсортирован в порядке возрастания, и вернул False в противном случае.Предполагается, что List1 должен возвращать True, а List2 должен возвращать False.

Я попытался создать новую переменную с именем sort, чтобы использовать метод сортировки, чтобы упорядочить ее, сравнить с неизмененным списком и использовать цикл for дляпроверьте, совпадают ли элементы в отсортированном списке и неизмененном списке друг с другом в том же порядке.Я не слишком уверен, как правильно решить эту проблему, поскольку я получаю Ложные возвращения для обоих.

def is_sorted(t):
    sort = t.sort()
    for element in t:
        if t == sort:
            return True
        else:
            return False

def main():
    list1 = [1,2,2]
    print(is_sorted(list1))
    list2 = ['b', 'a']
    print(is_sorted(list2))

main()

1 Ответ

4 голосов
/ 17 мая 2019

list.sort сортирует список на месте и возвращает None. Из документов: https://docs.python.org/3/tutorial/datastructures.html

list.sort (ключ = Нет, обратный = Ложь)
Сортировать элементы списка по месту

Вместо этого вы хотите использовать sorted , который возвращает отсортированный список

отсортировано (итеративно, *, ключ = нет, обратный = ложно)
Вернуть новый отсортированный список из элементов в итерируемых.

Также вы можете просто сравнить список вместо сравнения каждого элемента

def is_sorted(t):
    #Sort the list and check if it the same as the original list
    return sorted(t) == t

Вывод будет

print(is_sorted([1,2,2]))
#True
print(is_sorted(['b', 'a']))
#False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...