Menu
Coddy logo textTech

Срезы списков. Часть 2

Часть раздела Fundamentals путешествия по Python на Coddy — урок 65 из 77.

У срезов есть ещё один параметр step (шаг): lst[start:stop:step]. Например, рассмотрим этот список:

numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Получает каждый второй элемент с индекса 1 по 8:

print(numbers[1:8:2])
# Вывод: [1, 3, 5, 7]

Получает каждый третий элемент, начиная с индекса 2:

print(numbers[2::3])
# Вывод: [2, 5, 8]

Срезы также поддерживают отрицательные индексы.

Отсчет с конца:

print(numbers[-3:])
# Вывод: [7, 8, 9]

Здесь -3 означает «начать за 3 позиции до конца»

Счет до конца:

print(numbers[:-2])    
# Вывод: [0, 1, 2, 3, 4, 5, 6, 7]

Здесь -2 означает «остановиться за 2 позиции до конца» (не включая)

Разворот с отрицательным шагом:

print(numbers[::-1])
# Вывод: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
  • Пустое пространство перед первым : означает «начать с начала»
  • Пустое пространство между : означает «идти до конца»
  • -1 означает «двигаться назад по одному шагу за раз» 
challenge icon

Задание

Легко

Создайте программу, которая получает список на вход (заданный) и выводит три новых списка на основе следующих операций среза:

  • Список, содержащий каждый третий элемент, начиная с индекса 1 (второй элемент)
  • Список, содержащий все элементы с 6-го по 1-й в обратном порядке
  • Список, содержащий каждый второй элемент, начиная с середины списка и до конца

Шпаргалка

Синтаксис срезов: lst[start:stop:step]

Примеры срезов:

numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# Каждый второй элемент от индекса 1 до 8
print(numbers[1:8:2])  # Результат: [1, 3, 5, 7]

# Каждый третий элемент от индекса 2
print(numbers[2::3])  # Результат: [2, 5, 8]

# Последние три элемента
print(numbers[-3:])  # Результат: [7, 8, 9]

# Все элементы, кроме последних двух
print(numbers[:-2])  # Результат: [0, 1, 2, 3, 4, 5, 6, 7]

# Развернуть список
print(numbers[::-1])  # Результат: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

Ключевые моменты:

  • Отрицательные индексы ведут отсчет с конца списка
  • Пустое место перед первым : означает «начать с начала»
  • Пустое место между : означает «идти до конца»
  • Отрицательный шаг меняет порядок на обратный

Попробуйте сами

lst = input().split(",")
# Напишите свой код ниже
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Fundamentals