Как работает индексирование и отрицательные индексы в Python?

Индексирование в последовательностях (list, str, tuple) позволяет получить элемент по позиции через obj[index], где первый элемент имеет индекс 0. Отрицательные индексы (-1, -2 и т.д.) отсчитываются от конца: -1 — последний элемент, -2 — предпоследний и так далее.
Подробный ответ

Индексирование — это обращение к элементу последовательности по его позиции: obj[index]. На уровне trainee важно уверенно пользоваться индексами и понимать, как работают отрицательные индексы.

Положительные индексы

Первый элемент имеет индекс 0, затем 1, 2 и так далее.

nums = [10, 20, 30, 40]
nums[0]  # 10
nums[1]  # 20

Если обратиться к индексу за пределами диапазона, будет IndexError:

nums[10]  # IndexError

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

Отрицательный индекс отсчитывается от конца последовательности.

  • -1 — последний элемент.

  • -2 — предпоследний.

nums = [10, 20, 30, 40]
nums[-1]  # 40
nums[-2]  # 30

То же работает и для строк и кортежей:

text = "hello"
text[0]   # 'h'
text[-1]  # 'o'

Что важно уметь сказать на собеседовании

В Python последовательности индексируются с нуля: 0 — первый элемент. Отрицательные индексы идут с конца: -1 — последний, -2 — предпоследний. Обращение к индексу вне диапазона приводит к IndexError. Умение работать с отрицательными индексами часто проверяют на простых задачках: взять последний элемент, предпоследний, «хвост» списка и т.д.

Оцени свой прогресс

Честно оцени своё понимание этого вопроса, чтобы мы могли построить твой учебный трек максимально эффективно.
Читать в блоге