Олег Марков
Индекс списка в Python
Введение
Индексы списков — основной инструмент для обращения к отдельным элементам коллекций в Python. Они позволяют извлекать, изменять и удалять элементы по их позиции в списке. Понимание работы с индексами важно для безопасного и эффективного управления данными, особенно при работе с срезами и вложенными структурами.
Индексы могут быть положительными и отрицательными, поддерживают срезы, а также являются основой для перебора элементов с помощью циклов. В этой статье мы разберемся, как работать с индексами списков, управлять доступом к элементам и избегать распространенных ошибок.
Если вы хотите детальнее изучить работу с коллекциями и управление элементами списков в Python — приходите на наш курс Основы Python. На курсе 209 уроков и 34 упражнения, AI-тренажеры для практики с кодом и задачами 24/7, решение задач с живым ревью наставника, еженедельные встречи с менторами. Вы получите системное понимание работы с коллекциями и индексации элементов в Python.
Доступ к элементам списка по индексу
В Python элементы списка имеют позицию, начиная с нуля. Положительные индексы идут слева направо:
fruits = ["apple", "banana", "cherry", "date"]
print(fruits[0]) # apple
print(fruits[2]) # cherryОтрицательные индексы
Отрицательные индексы позволяют обращаться к элементам с конца списка:
print(fruits[-1]) # date
print(fruits[-2]) # cherryЭто особенно удобно, когда неизвестна длина списка, а нужен последний элемент.
Изменение и удаление по индексу
Можно изменять элемент по индексу:
fruits[1] = "blueberry"
print(fruits) # ['apple', 'blueberry', 'cherry', 'date']Удаление элементов по индексу возможно через del или pop:
del fruits[0]
last = fruits.pop() # удаляет и возвращает последний элементСрезы списков
С помощью срезов можно получать подсписки или модифицировать часть списка:
numbers = [1, 2, 3, 4, 5, 6]
print(numbers[2:5]) # [3, 4, 5]
print(numbers[:3]) # [1, 2, 3]
print(numbers[3:]) # [4, 5, 6]
print(numbers[::2]) # [1, 3, 5]Срезы также поддерживают отрицательные индексы:
print(numbers[-4:-1]) # [3, 4, 5]Перебор элементов с индексами
Функция enumerate позволяет перебрать элементы с индексами:
fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits):
print(index, fruit)Результат:
0 apple
1 banana
2 cherryЭто удобно при необходимости отслеживать позицию элемента в цикле.
Частые ошибки при работе с индексами
- Попытка доступа к индексу вне диапазона →
IndexError. - Ошибка при отрицательных срезах (например, start > stop).
- Изменение списка во время перебора через индексы может вызвать непредсказуемое поведение.
Для безопасной работы используйте функции len и enumerate, проверяйте длину списка перед обращением по индексу.
Часто задаваемые вопросы
Можно ли использовать нецелые числа как индекс? Нет, индекс должен быть целым числом.
Как получить индекс элемента по значению?
fruits = ["apple", "banana", "cherry"]
idx = fruits.index("banana")
print(idx) # 1- Можно ли срезом изменить несколько элементов? Да, присваивание срезу заменяет часть списка:
numbers = [1, 2, 3, 4, 5]
numbers[1:3] = [20, 30]
print(numbers) # [1, 20, 30, 4, 5]- Как безопасно получить элемент с конца списка, если список может быть пустым?
last = fruits[-1] if fruits else NoneЗаключение
Индексация списков — фундаментальный инструмент работы с коллекциями в Python. Она позволяет получать, изменять, удалять элементы, работать с подсписками и безопасно перебирать данные. Понимание положительных и отрицательных индексов, срезов и функций enumerate обеспечивает удобную и безопасную обработку данных.
Для системного изучения работы с индексами, списками и другими коллекциями Python рекомендую пройти курс Основы Python. В первых 3 модулях уже доступно бесплатное содержание — начните погружаться в мир Python прямо сегодня.
Постройте личный план изучения Python до уровня Middle — бесплатно!
Python — часть карты развития Backend
100+ шагов развития
30 бесплатных лекций
300 бонусных рублей на счет
Все гайды по Python
Лучшие курсы по теме

Основы Python
Антон Ларичев
Nest.js с нуля
Антон Ларичев