Можно ли использовать отрицательный индекс для доступа к элементу списка в Python?

«Можно ли использовать отрицательный индекс для доступа к элементу списка в Python?» — вопрос из категории Python, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Как это работает:

  • -1 — последний элемент.
  • -2 — предпоследний элемент.
  • И так далее до -len(list) (первый элемент).

Примеры:

my_list = ['a', 'b', 'c', 'd', 'e']

print(my_list[-1])  # 'e' (последний)
print(my_list[-3])  # 'c' (третий с конца)
print(my_list[-5])  # 'a' (первый элемент, эквивалентно my_list[0])

# Срезы (slicing) также работают с отрицательными индексами
print(my_list[-3:])   # ['c', 'd', 'e'] (с третьего с конца до конца)
print(my_list[:-2])   # ['a', 'b', 'c'] (с начала до третьего с конца)
print(my_list[-4:-1]) # ['b', 'c', 'd']

Важно: Ошибка выхода за границы Попытка обратиться к индексу, меньшему чем -len(list), вызовет IndexError.

print(my_list[-6])  # IndexError: list index out of range

Практическое применение в тестировании: Этот прием часто используется для быстрой проверки последних элементов в логах, результатах или для реализации логики "последний из N".