List comprehension в Python

Это компактный способ создания списков с использованием одного выражения внутри квадратных скобок. Метод позволяет упростить создание списков путем применения выражения к каждому элементу последовательности (или другого итерируемого объекта) и добавления результата в новый список.

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

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

Примеры:

1. Создание списка квадратов чисел:
squares = [x**2 for x in range(10)]
print(squares) 

# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

2. Фильтрация элементов:
Создание списка только с четными числами:

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

# [0, 2, 4, 6, 8]

3. Использование вложенных циклов:

pairs = [(x, y) for x in [1, 2, 3] for y in [3, 1, 4] if x != y]
print(pairs) 

# [(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]

4. Преобразование и фильтрация строк:

sentence = «The quick brown fox»
words = [word.lower() for word in sentence.split() if len(word) > 3]
print(words) 

# [‘quick’, ‘brown’]

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