Списки в Python — это изменяемые последовательности, которые могут содержать элементы различных типов данных. Они обладают индексированным доступом к элементам, и каждый элемент имеет свой индекс, начиная с 0.
Обращение к элементам списка: Для получения доступа к элементам списка используется индекс. Например, list[0] возвращает первый элемент, а list[-1] — последний.

Создание срезов: Срезы позволяют извлекать подмножества списка. Срез выполняется через list[start:end], где start — индекс начала, а end — индекс, до которого будет происходить извлечение (не включая его). Дополнительно можно использовать шаг list[start:end:step] для пропуска элементов.

Для обхода списка обычно используют цикл for. Для поиска элементов можно применить метод .index() (возвращает индекс первого вхождения элемента в списке) или оператор in (проверяет, содержится ли элемент в списке, и возвращает True или False).

Операции изменения списка
.append() — добавляет элемент в конец списка.
.extend() — добавляет все элементы другого списка или итерируемого объекта в конец текущего списка.
.insert() — вставляет элемент на указанную позицию.
.remove() — удаляет первый найденный элемент, совпадающий с указанным значением.
.pop() — удаляет и возвращает элемент по указанному индексу (по умолчанию удаляет последний элемент).

Копирование списка
Метод .copy() создает поверхностную копию списка.
Срез [:] также создает копию списка.
