Что такое list comprehension

Выражение заключенное в квадратные/фигурные скобки, в котором используются ключевые слова for и in для построения списка/словаря путем обработки и фильтрации элементов из одного или нескольких итерируемых объектов. Списковое включение работает энергично.

Энергичный - итерируемый объект, который сразу строит все свои элементы. В Python включения - энергичные операции. Противоположность - ленивый.

Oct. 10, 2023, Источник

Генераторы позволяют создавать списки с помощью одной строки кода

>>> [i for i in range(1, 11, 2)]
[1, 3, 5, 7, 9] 

 

Oct. 10, 2023, Источник

List comprehension - это конструкция, которая позволяет создавать списки на основе других последовательностей (например, списков, кортежей, множеств) более компактно и читаемо.

Синтаксис list comprehension выглядит следующим образом:

[выражение for элемент in последовательность if условие]

или в расширенной форме:

[выражение for элемент in последовательность]

где:

  •  `выражение` - это выражение, которое будет применено к каждому элементу последовательности.
  • `элемент` - это переменная, представляющая текущий элемент последовательности.
  • `последовательность` - это исходная последовательность, по которой будет проходить итерация.
  • `условие` (необязательно) - это условие, которое фильтрует элементы последовательности.

Примеры использования list comprehension:

1. Создание списка квадратов чисел от 0 до 9:

squares = [x**2 for x in range(10)]


2. Фильтрация списка, оставляя только четные числа:

even_numbers = [x for x in range(10) if x % 2 == 0]


3. Преобразование списка строк в список их длин:

strings = ["apple", "banana", "orange"]
lengths = [len(s) for s in strings]


List comprehension делает код более кратким и выразительным, особенно для простых преобразований и фильтраций данных. Однако не следует злоупотреблять им, чтобы избежать снижения читаемости кода.

Feb. 16, 2024, easyoffer