-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlist_comprehension.py
More file actions
29 lines (23 loc) · 1.86 KB
/
list_comprehension.py
File metadata and controls
29 lines (23 loc) · 1.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
"""
List Comprehension - это компактный синтаксический способ создания новых списков в Python
на основе существующих последовательностей.
Это позволяет объединить цикл for и условные выражения в одну строку кода.
[x**2 for x in [1,2,3,4,5] if x%2==0]
['expression' for item in 'iterable' if 'condition']
List Comprehension можно разбить на 3 части: Expression, Iterable, Condition
1) Expression (Выражение) - это операция или значение, которое будет включено в новый список.
Например, x**2 возведёт все значения в новом списке в квадрат.
2) Iterable (Итерируемый объект) - это последовательность, по которой происходит итерация.
3) Condition (Условие) - это фильтр, который принимает только элементы, удовлетворяющие условию.
Condition работает как фильтр и располагается в конце выражения
Например, [x for x in range(10) if x % 2 == 0] // Только чётные числа
Есть два способа использования if в list comprehension:
1) Фильтрующее условие (в конце):
[x for x in range(10) if x % 2 == 0] // [0, 2, 4, 6, 8]
2) Условное выражение (в начале, как часть expression):
[x if x % 2 == 0 else -x for x in range(5)] // [0, -1, 2, -3, 4]
"""
x = [1, 0, 2, 0, 3, 0]
print([i for i in x if i != 0]) # [1, 2, 3]
print([i**2 for i in x if i != 0]) # [1, 4, 9]
print([x if x % 2 == 0 else -x for x in range(5)]) # [0, -1, 2, -3, 4]