Проверка с использованием функций all() и zip()
На этом этапе вы узнаете, как использовать функции all()
и zip()
для проверки, отсортирован ли список. Эти функции предоставляют компактный и эффективный способ проверить порядок элементов в списке.
Сначала разберемся с функцией zip()
. Функция zip()
принимает несколько итерируемых объектов (например, списки) в качестве входных данных и возвращает итератор кортежей, где каждый кортеж содержит соответствующие элементы из входных итерируемых объектов.
Рассмотрим следующий пример:
list1 = [1, 2, 3]
list2 = [4, 5, 6]
zipped = zip(list1, list2)
print(list(zipped))
Добавьте этот код в файл sort_list.py
, заменив предыдущее содержимое. Затем запустите скрипт:
python sort_list.py
Вы должны увидеть следующий вывод:
[(1, 4), (2, 5), (3, 6)]
Функция zip()
создала итератор, который возвращает кортежи, содержащие соответствующие элементы из list1
и list2
.
Теперь разберемся с функцией all()
. Функция all()
принимает итерируемый объект в качестве входных данных и возвращает True
, если все элементы в итерируемом объекте являются истинными, и False
в противном случае.
Рассмотрим следующий пример:
bool_list = [True, True, True]
print(all(bool_list))
bool_list = [True, False, True]
print(all(bool_list))
Добавьте этот код в файл sort_list.py
и запустите его:
python sort_list.py
Вы увидите следующий вывод:
True
False
Теперь объединим функции zip()
и all()
для проверки, отсортирован ли список. Идея состоит в том, чтобы сравнить каждый элемент с последующим элементом в списке и проверить, находится ли список в порядке возрастания.
numbers = [1, 2, 3, 4, 5]
is_sorted = all(numbers[i] <= numbers[i+1] for i in range(len(numbers)-1))
print(is_sorted)
numbers = [1, 2, 5, 4, 5]
is_sorted = all(numbers[i] <= numbers[i+1] for i in range(len(numbers)-1))
print(is_sorted)
Измените файл sort_list.py
, добавив этот код. Запустите скрипт еще раз:
python sort_list.py
Вы должны увидеть следующий вывод:
True
False
В этом коде используется генераторное выражение с функцией zip()
для сравнения соседних элементов в списке. Затем функция all()
проверяет, все ли сравнения истинны, что означает, что список отсортирован.
Этот подход предоставляет компактный и эффективный способ проверить, отсортирован ли список в Python.