Как работают dict comprehension, list comprehension и set comprehension?

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

Они позволяют заменить многострочный цикл одной компактной конструкцией.


1. List comprehension — создание списка

📌 Синтаксис:

[выражение for элемент in итерируемый_объект if условие]

Пример:

numbers = [1, 2, 3, 4, 5]
squares = [n ** 2 for n in numbers]
print(squares)  # [1, 4, 9, 16, 25]

С фильтром:

even_squares = [n ** 2 for n in numbers if n % 2 == 0]
print(even_squares)  # [4, 16]

2. Set comprehension — создание множества

📌 Почти как list comprehension, но в фигурных скобках:

numbers = [1, 2, 2, 3, 4, 4]
unique_squares = {n ** 2 for n in numbers}
print(unique_squares)  # {16, 1, 4, 9}

📌 Особенность: автоматически удаляет дубликаты.


3. Dict comprehension — создание словаря

📌 Используется, когда нужно создать словарь из итерируемого объекта:

С фильтром:


4. Вложенные comprehension

Можно вкладывать, например, для матриц:


5. Пример в автотестах (QA Automation)

📌 Получить список только упавших тестов:

📌 Преобразовать результаты тестов в словарь:

Last updated

Was this helpful?