В этом модуле мы погрузимся в одну из самых мощных возможностей Python — работу со списками через индексацию и срезы. Вы научитесь получать доступ к конкретным элементам списка, извлекать подмножества данных и управлять порядком элементов.
Что вас ждет в этом уроке:
- Доступ к элементам по положительным и отрицательным индексам.
- Синтаксис срезов:
start:stop:step. - Обработка ошибок при выходе за границы списка.
- Изменение списков с помощью срезов.
Задания построены от простого к сложному: начнем с получения одного элемента и закончим сложными манипуляциями с шагом и изменением содержимого. Внимательно читайте условия и следите за синтаксисом!
- Модуль 1: Основы синтаксиса Python
- Модуль 2: Переменные и типы данных
- Модуль 3: Операторы
- Арифметические операторы (+, -, *, /).
- Целочисленное деление и остаток (// и %).
- Возведение в степень (**).
- Операторы сравнения.
- Логические операторы (and, or, not).
- Операторы присваивания (=, +=, -=).
- Операторы принадлежности (in, not in).
- Операторы идентичности (is, is not).
- Битовые операторы.
- Тернарный оператор.
- Модуль 4: Ввод и вывод данных
- Модуль 5: Условные конструкции
- Модуль 6: Циклы
- Модуль 7: Строки
- Модуль 8: Списки
- Создание списков.
- Индексация и срезы списков.
- Методы append() и extend().
- Функции len(), min(), max(), sum().
- Модуль 9: Кортежи
- Модуль 10: Словари
- Модуль 11: Множества
- Модуль 12: Функции
- Модуль 13: Встроенные функции
- Модуль 14: Работа с файлами
- Модуль 15: Обработка исключений
- Модуль 16: Модули и пакеты
- Модуль 17: ООП - Основы
- Модуль 18: ООП - Продвинутый уровень
- Модуль 19: Декораторы
- Модуль 20: Генераторы и итераторы
- Модуль 21: Регулярные выражения
- Модуль 22: Дата и время
- Модуль 23: Математические операции
- Модуль 24: Работа с сетью
- Модуль 25: Асинхронное программирование
- Модуль 26: Многопоточность
- Модуль 27: Тестирование
- Модуль 28: Базы данных
- Модуль 29: Алгоритмы и структуры данных
- Модуль 30: Продвинутые возможности
Первый элемент списка
Получите доступ к первому элементу списка fruits. В Python нумерация индексов начинается с нуля.
fruits = ['Apple', 'Banana', 'Cherry']
first_fruit = fruits[input1S]
print(first_fruit)Отрицательная индексация
Python позволяет обращаться к элементам с конца списка, используя отрицательные числа. Какой элемент выведет данный код?
numbers = [10, 20, 30, 40, 50]
print(numbers[-2])Простой срез списка
Срезы позволяют получить часть списка. Синтаксис: [start:stop]. Введите результат выполнения кода. Результат должен быть в формате списка Python (в квадратных скобках).
letters = ['a', 'b', 'c', 'd', 'e', 'f']
print(letters[1:4])Срез с шагом
Используя синтаксис срезов [start:stop:step], выберите из банка правильные значения, чтобы получить список, содержащий только нечетные числа из исходного списка.
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# Нам нужно получить [1, 3, 5, 7, 9]
odds = numbers[input1S:input2S:input3S]
print(odds)Ошибка выхода за границы
Этот код пытается получить последний элемент списка, но падает с ошибкой IndexError. Найдите и исправьте строку, где происходит обращение к неверному индексу.
colors = ['red', 'green', 'blue']last_color = colors[len(colors)]print(f"Last color is {last_color}")Тип возвращаемого значения
Важно понимать разницу: индексация возвращает один элемент (его тип), а срез всегда возвращает новый список (даже если там один элемент или он пустой). Распределите выражения по типу результата для списка lst = [10, 20, 30].
lst[0]lst[1:2]lst[:]lst[-1]lst[::-1]Шаблоны срезов
Сопоставьте код среза с описанием того, что он делает.
lst[1:]lst[:2]lst[::-1]lst[:]Палиндром через срезы
Соберите код, который проверяет, является ли слово палиндромом (читается одинаково слева направо и справа налево). Для этого нужно сравнить слово с его перевернутой версией.
word = "radar"if word == word[::-1]: print("Palindrome")else: print("Not palindrome")if word == word[1::]:word = word[-1]Изменение списка срезом
Срезам можно присваивать новые значения, изменяя тем самым часть списка. Что выведет этот код? Обратите внимание, что срез [1:3] заменяется на список из трех элементов.
nums = [10, 20, 30, 40]
nums[1:3] = [8, 9, 10]
print(nums)