Срезы списков. Часть 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 означает «двигаться назад по одному шагу за раз»
Задание
ЛегкоСоздайте программу, которая получает список на вход (заданный) и выводит три новых списка на основе следующих операций среза:
- Список, содержащий каждый третий элемент, начиная с индекса 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(",")
# Напишите свой код нижеВ этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Fundamentals
4Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логикаЛогические операторы. Часть 3Логические операторы. Часть 47Калькулятор разделения счета
Приветственное сообщениеПолучение данных13Списки: продвинутый уровень
Срезы списков. Часть 1Срезы списков. Часть 2Операторы последовательностейПроверка вхождения2Переменные
ЧислаСтрокиЛогический типПравила именованияПустые переменныеИтоги — Инициализация переменных5Принятие решений
Оператор ifКонструкция if - elseПовторение: Простой калькуляторВложенные конструкции if - else8Циклы
Цикл ForЦикл WhileОператор BreakОператор ContinueПовторение: ФакториалФункция RangeВложенные циклыПовторение: Динамический ввод3Операторы. Часть 1
Арифметические операторыОператор остатка от деленияСокращенная арифметикаИтоги: простая математикаОператоры сравнения6Основы ввода-вывода
ВыводВывод с переменнымиВводПриведение типовПовторение — До 120Повторение — Истина или ложь9Функции
Объявление функцииАргументыВозврат значенияПовторение — функция SigmaПовторение — функция валидацииЗначения по умолчанию12Итерация по последовательностям
Итерация по элементамФункция enumerateИтерация по строкам. Часть 1Итерация по строкам. Часть 2