Индекс списка в Python

06 ноября 2026
Автор

Олег Марков

Введение

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

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

Если вы хотите детальнее изучить работу с коллекциями и управление элементами списков в Python — приходите на наш курс Основы Python. На курсе 209 уроков и 34 упражнения, AI-тренажеры для практики с кодом и задачами 24/7, решение задач с живым ревью наставника, еженедельные встречи с менторами. Вы получите системное понимание работы с коллекциями и индексации элементов в Python.

Курс по теме

Курс Python с нуля

40 000+ студентов · рейтинг 4.8 · гарантия возврата 30 дней

Доступ к элементам списка по индексу

В 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, проверяйте длину списка перед обращением по индексу.

Часто задаваемые вопросы

  1. Можно ли использовать нецелые числа как индекс? Нет, индекс должен быть целым числом.

  2. Как получить индекс элемента по значению?

fruits = ["apple", "banana", "cherry"]
idx = fruits.index("banana")
print(idx)  # 1
  1. Можно ли срезом изменить несколько элементов? Да, присваивание срезу заменяет часть списка:
numbers = [1, 2, 3, 4, 5]
numbers[1:3] = [20, 30]
print(numbers)  # [1, 20, 30, 4, 5]
  1. Как безопасно получить элемент с конца списка, если список может быть пустым?
last = fruits[-1] if fruits else None

Заключение

Индексация списков — фундаментальный инструмент работы с коллекциями в Python. Она позволяет получать, изменять, удалять элементы, работать с подсписками и безопасно перебирать данные. Понимание положительных и отрицательных индексов, срезов и функций enumerate обеспечивает удобную и безопасную обработку данных.

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

Стрелочка влевоТип int в Python и его особенностиФункции для работы со строками в PythonСтрелочка вправо

Постройте личный план изучения Python до уровня Middle — бесплатно!

Python — часть карты развития Backend

  • step100+ шагов развития
  • lessons30 бесплатных лекций
  • lessons300 бонусных рублей на счет

Все гайды по Python

Как отправлять запросы с помощью requests в PythonПочему Python выводит значение без команды printКак работает команда print в PythonВозможности Python для автоматизации задачPython get — методы получения данныхРабота с JSON в Python на примерахКак находить и исправлять ошибки в PythonСтруктура и оформление кода PythonОсновы Django с PythonРабота с данными через API и внешние сервисыПолезные приёмы в Python для повседневной работыИспользование locals в Python для отладкиИнтеграция PHP и PythonКак выполнять HTTPS-запросы в PythonFastAPI Python — быстрый старт: создание REST API с нуляКак работать с API в Python
Ввод целого числа в PythonВедение логов в PythonОбработка исключений с помощью try/except в PythonУдаление данных в Python с помощью removeФункция super() в Python — как вызвать метод родителяСоздание собственных контекстных менеджеров в PythonРабота с символами программирования PythonРабота с переменной X в PythonРабота с классами в PythonКак скачать Python на компьютерПростая программа на Python для начинающихОсновы Python для тех, кто начинаетЧто нового в Python 3Поддерживается ли Python 2 и стоит ли его использоватьPython 1 — с чего начиналась история языкаКоманда python print - полное руководство по выводу данныхПравила именования переменных в PythonПользовательские исключения в PythonОсновы Python coreОписание объектов PythonНаследование классов в Python — основы и примерыМножественное наследование в Python — примеры и MROКонтекстный менеджер with в Python — как работает и зачем нуженКомментарии в Python — однострочные, многострочные и docstringКакой Python выбрать для установкиКак вывести целое число с помощью print в PythonКак установить Python на Windows macOS и LinuxКак пользоваться консолью PythonКак получить последний элемент в PythonКак найти значение в PythonКак настроить PythonКак использовать print для строк в PythonКак работает интерпретатор PythonИнструкция по работе с PythonБлок finally в обработке исключений PythonЦелые числа в PythonАбстрактные классы в Python — ABC и abstractmethod
uv — современный менеджер пакетов PythonPython subprocess: запуск внешних команд и процессовSQLModel ORM для FastAPIВеб-скрапинг с Scrapy в PythonPython rich: красивый вывод в терминалеМиграция с Pydantic v1 на v2Pydantic: валидация данных в PythonPoetry: управление зависимостями в PythonPython pathlib — современная работа с файловыми путямиPython msgspec: быстрая сериализация данныхPython click: создание CLI-приложенийPython itertools — работа с итераторамиПарсинг сайтов с BeautifulSoup в PythonPython argparse: разбор аргументов командной строкиAlembic для миграций базы данных с SQLAlchemy
Загрузка данных PythonУправление проектами на GitHub с PythonСоздание веб-приложений на Flask PythonСоздание бота на PythonСоздание интерфейсов Python QTСоздание игр с PygameСоздание GUI в PythonРабота с библиотеками через Python PackagingРабота со временем в Python при помощи модуля timeКак работать со словарями в PythonPython name — особенности переменнойМатематические операции в Python с модулем mathPython listing — что это и как использоватьPytest — тестирование на Python: полное руководствоОбработка изображений с OpenCV PythonNumPy в Python — основы и применение в задачахМашинное обучение с PythonИспользование Anaconda с PythonМодуль contextlib в Python — утилиты для контекстных менеджеровБиблиотеки Python и их применение в проектах
Возврат значений из функции в PythonСоздание собственных декораторов в PythonВложенные функции в PythonРабота с функцией map в PythonЦикл while в Python и примеры использованияОбработка чисел, введённых через input в PythonОсновные операторы в Python с примерамиУсловные выражения if else в Python для начинающихКак выполняется вызов функций call в PythonПродвинутые генераторы в Python — send, throw, close и корутиныПозиционные и именованные аргументы в PythonПередача аргументов по ссылке и по значению в PythonПередача аргументов через args и kwargs в PythonОсновные методы Python и примеры их использованияОбъявление переменных и управление областью видимости в PythonОператор match/case в Python 3.10+ — основы структурного сопоставленияПаттерны match/case в Python — деструктуризация, guard и вложенные шаблоныПрактические примеры match/case в Python — реальные сценарии примененияЛокальные и глобальные переменные в PythonЧасто используемые команды PythonКлючевые слова global и nonlocal в PythonКак создавать функции в PythonКак работает сборщик мусора в PythonКак работает область видимости переменных в PythonКак работает функция callable в PythonКак работает функция any и all в PythonКак передать функцию как аргумент в PythonКак использовать функцию isinstance в PythonКак использовать функцию filter в PythonКак проверить тип переменной в PythonКак использовать функцию filter в PythonКак использовать функцию eval безопасно в PythonКак использовать декораторы в PythonИзменяемые и неизменяемые типы данных в PythonГенераторные выражения в Python — синтаксис и примерыГенераторы и yield в Python — как создавать и использоватьФункции в Python и способы их вызоваФункции как объекты в PythonЧто такое замыкания в PythonЧто делает функция reduce в PythonЧто делает функция id в PythonАргументы по умолчанию в PythonАнонимные функции и lambda в PythonАлгоритмы на Python — примеры и объяснение
Запись данных в PythonУстановка pip в PythonУправление зависимостями requirement в PythonУправление библиотеками с помощью Python PackagingУдаление пробелов с помощью strip в PythonСтруктурирование кода в PythonСоздание исполняемого файла Python в exeРазбор traceback в модуле PythonРазбор site-packages в PythonРазбор Program Files в PythonРабота с Unicode кодировками в PythonРабота с системными функциями Python sysРабота с папкой AppData в PythonРабота с модулем logging в PythonРабота с каталогами в PythonРабота с CSV в PythonВиртуальная среда venv в Python — создание и настройкаКак создать простое приложение на PythonИспользование pip в Python для установки пакетовМодули в Python и организация кода в проектеИмпорт модулей в Python и правила подключенияРабота с файлами в Python пошаговоЧто делает компилятор Python и как он работаетПолучение строки из модуля PythonПодключение файлов в Python с includeПеременные среды в PythonСборка проекта с помощью packaging в PythonНастройка Python сервераИспользование Python на UbuntuИспользование консоли PythonИспользование кодировок в PythonИнициализация пакетов PythonИмпорт модулей PythonИмпорт имен в PythonСреда IDLE Python и базовые возможностиЧтение и запись TXT в PythonЧтение файлов в Python с помощью open file
Удаление элементов из списка PythonТипы данных в Python — обзор и рекомендацииОсновные операции со строками в PythonМетоды str в Python и обработка текстаСписки в Python и их ключевые методыСоздание списков данных в PythonРабота со строками и символами в PythonРабота со столбцами в PythonРабота со списком значений в PythonРабота с таблицами в Python с помощью DataFrameРабота с RFR в PythonРабота с пробелами в PythonРабота с массивами в PythonРабота с кортежами tuple PythonРабота с координатами X и Y в PythonРабота с ключами в PythonРабота с элементами данных PythonРабота с двоичными числами PythonРабота с данными в PythonРабота с данными NumPy PythonРабота с большими числами в PythonРабота с битами в PythonРабота с байтами в PythonЧто такое значение в Python и как его определитьМножества в Python и операции с нимиИспользование range в Python для цикловПроверка на четность в PythonПроверка числа в PythonПреобразование типов в PythonПреобразование списка в строку PythonПреобразование числа в строку в PythonПостроение графиков в PythonОпределение индекса элемента в PythonОкругление чисел в PythonОбъединение списков в Python с помощью zipМножества в PythonМассивы в Python и отличие от списковМассив чисел в PythonКортежи данных в PythonКак вычислить сумму чисел в PythonКак получить остаток от деления в PythonКак найти следующее число в PythonИспользование Unicode в PythonТип int в Python и его особенностиИндекс списка в PythonФункции для работы со строками в PythonЭлементы Python и способы доступа к нимДоступ к элементам массива в PythonДеление чисел в PythonРабота с данными в Python на практикеКак работать с числами в Python
Телеграм-бот на Python: от команды до деплояPython multiprocessing: параллельные процессыMotor: асинхронная работа с MongoDB в PythonАсинхронная работа с базой данных через SQLAlchemy 2.0Redis в Python с asyncioPython httpx: современный HTTP-клиентFastAPI WebSockets в реальном времениFastAPI middleware и обработка запросовFastAPI lifespan: управление ресурсами приложенияFastAPI с JWT аутентификациейФоновые задачи FastAPI — BackgroundTasksconcurrent.futures: параллельные задачи в PythonФоновые задачи с Celery в PythonАсинхронная работа с PostgreSQL в Python через asyncpgPython asyncio.TaskGroupasyncio Queue: паттерны Producer-ConsumerМодуль asyncio в Python — основы асинхронного программированияСинтаксис async/await в Python — как писать асинхронный кодБиблиотека aiohttp в Python — асинхронные HTTP-запросы
Открыть базу знаний

Лучшие курсы по теме

Иконка молнииНовый
изображение курса

Основы Python

Антон Ларичев
AI-тренажерыAI-тренажеры
Практика в студииПрактика в студии
Гарантия
Бонусы
иконка звёздочки рейтинга4.8
3 999 ₽ 6 990 ₽
Подробнее
изображение курса

Nest.js с нуля

Антон Ларичев
AI-тренажерыAI-тренажеры
Практика в студииПрактика в студии
Гарантия
Бонусы
иконка звёздочки рейтинга4.6
3 999 ₽ 6 990 ₽
Подробнее
изображение курса

Docker и Ansible

Антон Ларичев
AI-тренажерыAI-тренажеры
Гарантия
Бонусы
иконка звёздочки рейтинга4.7
3 999 ₽ 6 990 ₽
Подробнее

Отправить комментарий