Проверка с использованием 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.