Индексация и срезы списков

Тренажер по Python для пользователей с начальным уровнем подготовки.

Тренажер по Python

В этом модуле мы погрузимся в одну из самых мощных возможностей Python — работу со списками через индексацию и срезы. Вы научитесь получать доступ к конкретным элементам списка, извлекать подмножества данных и управлять порядком элементов.

Что вас ждет в этом уроке:

  • Доступ к элементам по положительным и отрицательным индексам.
  • Синтаксис срезов: start:stop:step.
  • Обработка ошибок при выходе за границы списка.
  • Изменение списков с помощью срезов.

Задания построены от простого к сложному: начнем с получения одного элемента и закончим сложными манипуляциями с шагом и изменением содержимого. Внимательно читайте условия и следите за синтаксисом!

Список тем

Первый элемент списка

id: 40003_task1

Получите доступ к первому элементу списка fruits. В Python нумерация индексов начинается с нуля.

Заполните пропуски
fruits = ['Apple', 'Banana', 'Cherry']
first_fruit = fruits[input1S]
print(first_fruit)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Отрицательная индексация

id: 40003_task2

Python позволяет обращаться к элементам с конца списка, используя отрицательные числа. Какой элемент выведет данный код?

Выберите правильный вариант ответа
numbers = [10, 20, 30, 40, 50]
print(numbers[-2])
Сообщения
Проверить
Показать подсказку

Простой срез списка

id: 40003_task3

Срезы позволяют получить часть списка. Синтаксис: [start:stop]. Введите результат выполнения кода. Результат должен быть в формате списка Python (в квадратных скобках).

Что должно получиться?
letters = ['a', 'b', 'c', 'd', 'e', 'f']
print(letters[1:4])
Сообщения
Проверить
Показать подсказку

Срез с шагом

id: 40003_task4

Используя синтаксис срезов [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)
1
::
2
0
10
:
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Ошибка выхода за границы

id: 40003_task5

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

Найдите ошибку и исправьте
colors = ['red', 'green', 'blue']
last_color = colors[len(colors)]
print(f"Last color is {last_color}")
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Тип возвращаемого значения

id: 40003_task6

Важно понимать разницу: индексация возвращает один элемент (его тип), а срез всегда возвращает новый список (даже если там один элемент или он пустой). Распределите выражения по типу результата для списка lst = [10, 20, 30].

Перетяните элементы в соответствующие блоки
Возвращает список (list)
Возвращает число (int)
lst[0]
lst[1:2]
lst[:]
lst[-1]
lst[::-1]
Сообщения
Проверить
Показать подсказку

Шаблоны срезов

id: 40003_task7

Сопоставьте код среза с описанием того, что он делает.

Сопоставьте строки в правой части с соответствующими строками в левой по порядковому номеру
Копия всего списка
Разворот списка (задом наперед)
Все элементы, кроме первого
Первые два элемента
lst[1:]
lst[:2]
lst[::-1]
lst[:]
Сообщения
Проверить
Показать подсказку

Палиндром через срезы

id: 40003_task8

Соберите код, который проверяет, является ли слово палиндромом (читается одинаково слева направо и справа налево). Для этого нужно сравнить слово с его перевернутой версией.

Перетяните в правильном порядке строки из одного блока в другой
word = "radar"
if word == word[::-1]:
    print("Palindrome")
else:
    print("Not palindrome")
if word == word[1::]:
word = word[-1]
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Изменение списка срезом

id: 40003_task9

Срезам можно присваивать новые значения, изменяя тем самым часть списка. Что выведет этот код? Обратите внимание, что срез [1:3] заменяется на список из трех элементов.

Выберите правильный вариант ответа
nums = [10, 20, 30, 40]
nums[1:3] = [8, 9, 10]
print(nums)
Сообщения
Проверить
Показать подсказку
НайтиКурс.Ру