Статья Автор: Деникина Н.В., Деникин А.В.

Работа со списками (массивами) в Python. Краткий конспект

Списки (list) — это изменяемые упорядоченные коллекции элементов произвольных типов.
Аналогичны массивам в других языках, но более гибкие.


1. Создание списка

empty_list = []                  # Пустой список
numbers = [1, 2, 3, 4, 5]       # Список чисел
mixed = [1, "hello", 3.14, True] # Смешанные типы
nested = [[1, 2], [3, 4]]       # Вложенные списки

Генерация списков:

list_from_range = list(range(5))      # [0, 1, 2, 3, 4]
list_from_string = list("abc")        # ['a', 'b', 'c']

2. Доступ к элементам

Индексация начинается с 0 (отрицательные индексы — с конца).

fruits = ["apple", "banana", "cherry"]
print(fruits[0])    # "apple"
print(fruits[-1])   # "cherry" (последний элемент)

Срезы (slice):

numbers = [0, 1, 2, 3, 4, 5]
print(numbers[1:4])    # [1, 2, 3] (элементы 1, 2, 3)
print(numbers[:3])     # [0, 1, 2]  (от начала до 3)
print(numbers[2:])     # [2, 3, 4, 5] (от 2 до конца)
print(numbers[::2])    # [0, 2, 4]  (каждый второй)

3. Изменение списков

Добавление элементов:

fruits = ["apple", "banana"]
fruits.append("orange")     # ["apple", "banana", "orange"]
fruits.insert(1, "kiwi")   # ["apple", "kiwi", "banana", "orange"]
fruits.extend(["pear", "grape"])  # Расширение списка

Удаление элементов:

fruits.remove("banana")    # Удаляет первый найденный элемент
popped = fruits.pop(1)     # Удаляет и возвращает элемент с индексом 1
del fruits[0]              # Удаляет элемент по индексу
fruits.clear()             # Очищает список полностью

4. Основные операции

Объединение списков:

list1 = [1, 2]
list2 = [3, 4]
combined = list1 + list2    # [1, 2, 3, 4]

Копирование списка:

original = [1, 2, 3]
shallow_copy = original.copy()  # или list(original)

Проверка наличия элемента:

if "apple" in fruits:
    print("Есть яблоко!")

5. Методы списков

Метод Описание
append(x) Добавляет x в конец
extend(iterable) Добавляет элементы из итерируемого объекта
insert(i, x) Вставляет x на позицию i
remove(x) Удаляет первое вхождение x
pop([i]) Удаляет и возвращает элемент по индексу (по умолчанию последний)
index(x) Возвращает индекс первого вхождения x
count(x) Считает количество вхождений x
sort() Сортирует список (можно с key=)
reverse() Разворачивает список
copy() Возвращает копию списка

6. Генераторы списков (List Comprehension)

Создание списков в одну строку:

squares = [x**2 for x in range(5)]          # [0, 1, 4, 9, 16]
evens = [x for x in range(10) if x % 2 == 0] # [0, 2, 4, 6, 8]

7. Примеры использования

Фильтрация списка:

numbers = [1, 2, 3, 4, 5]
filtered = [x for x in numbers if x > 2]  # [3, 4, 5]

Сортировка:

fruits = ["banana", "apple", "cherry"]
fruits.sort()                            # ["apple", "banana", "cherry"]
fruits.sort(key=lambda x: len(x))        # Сортировка по длине

Обход списка:

for index, value in enumerate(fruits):
    print(f"Индекс {index}: {value}")

8. Важные нюансы

  • Списки изменяемы (в отличие от кортежей tuple).

  • Присваивание list2 = list1 создаёт ссылку, а не копию!

  • Для глубокого копирования используйте copy.deepcopy().

Печать