Как понять включения в Python.
- Что такое включения?
В языках программирования, особенно в начале обучения принято писать код построчно, где каждая строчка описывает конкретное действие. Но на более поздних стадиях появляется такая вещь, как включение. Официальное определение - это синтаксическая конструкция, которая позволяет компактно создавать списки, применяя заданное выражение к каждому элементу итерируемого объекта.
Более простыми словами - это строчка кода, в которой применяется сразу несколько функций (шагов). Основное требование - это использование итерируемого объекта.
Итерируемый объект - это объект, который можно перебрать. То есть он состоит из нескольких элементов. Самый простой пример - [1, 2, 3, 4, 5]
Давайте сразу перечислим нужные итерируемые объекты:
Списки: [1, 2, 3]
Множества: {1, 2, 3}
Словари: {1:1, 2:2, 3:3}
- Как они работают?
numbers = [1, 2, 3, 4, 5]
squares = []
for n in numbers:
squares.append(n ** 2)
print(squares) # [1, 4, 9, 16, 25]
Перед нами пример кода.
В нём мы видим несколько действий:
- Создается список numbers, содержащий пять целых чисел.
- Создается пустой список squares, который будет хранить результаты вычислений.
- Запускается цикл, который будет по очереди перебирать каждый элемент из списка numbers.
- На первой итерации переменная n принимает значение 1На второй итерации n = 2На третьей n = 3И так до 5.
- squares.append(n ** 2)Это тело цикла (выполняется для каждого n).
- n ** 2 — операция возведения в квадрат (то же самое, что n * n)..append(...) — метод, который добавляет новый элемент в конец списка squares.
Тоже самое можно сделать и в одну строчку сохранив все действия.
print([n ** 2 for n in [1, 2, 3, 4, 5]])
- Структура
Основная структура включения - это [Выражение for Элемент in Итерируемый_объект if Условие]
С итерируемым объектом всё понятно, с условием тоже.
Элементом выступает переменная (условный x), которая нужна в условии определенной задаче.
Выражение это непосредственно то, что нужно сделать с это переменной. Например: x**2 (возведение во вторую степень).
Здесь может быть любое Python-выражение:
- Арифметика
- Методы строк
- Вызов функций
- Условное выражение
- Создание кортежа
- Основные виды.
Здесь все просто - списковые, множественные, словарные.
Они просто отсылают к названиям итерируемых объектов.
- Использование.
Включения в Python стоит использовать, когда нужно быстро собрать новый набор данных из существующего, выполняя при этом простое правило: например, взять только чётные числа или умножить каждое значение на два. Они хороши для коротких и понятных преобразований, которые легко прочитать как обычную фразу.
Но не стоит их применять, если логика становится запутанной. В таких случаях лучше использовать обычный пошаговый перебор, чтобы код оставался ясным для чтения.