Срез для списка в Python
Ранее мы уже выполняли перебор всего списка и обращались к элементу по индексу. Теперь рассмотрим работу с конкретным подмножеством элементов списка. Такие подмножества в Python называются срезами (slices).
Чтобы создать срез нужно знать индекс первого и последнего элемента в списке, с которыми собираемся работать.
Чтобы понять как работают срезы, давайте для начала создадим числовой список от 1 до 9 при помощи функции range().
# Создаём пустой список numbers = [] # Запускаем цикл for и добавляем элементы в список for value in range(1,10): numbers.append(value) # Выводим список на экран print(numbers) # Финальный результат в консоли [1, 2, 3, 4, 5, 6, 7, 8, 9]
Давайте выведем первые три элемента из списка, запрашиваем индексы с 0 до 3, и мы получим элементы 1,2 и 3.
# Выводим список на экран print(numbers[0:3]) # Финальный результат в консоли [1, 2, 3]
Подмножество может включать в себя любую часть списка. Давайте в качестве примера ограничимся вторым, третьим и четвёртым элементом в списке. Соответственно срез будет начинаться с индекса 1 и заканчиваться 4.
# Выводим список на экран print(numbers[1:4]) # Финальный результат в консоли [2, 3, 4]
Если первый индекс среза не указан, то Python автоматически начинает срез от начала списка, то есть с 0 индекса.
# Выводим список на экран print(numbers[0:4]) # Финальный результат в консоли [1, 2, 3, 4]
Аналогичный синтаксис работает и для срезов, включающих конец списка. Например, если нам нужны все элементы с третьего и до последнего, указываем первый индекс 2, а второй не указываем.
# Выводим список на экран print(numbers[2:]) # Финальный результат в консоли [3, 4, 5, 6, 7, 8, 9]
Чтобы вывести последние три элемента списка, необходимо в качестве первого индекса указать -3, а второй оставить пустым.
Важный момент: отрицательный индекс возвращает элемент, находящийся на заданном расстоянии от конца списка.
# Выводим список на экран print(numbers[-3:]) # Финальный результат в консоли [7, 8, 9]