enumerate() в Python и почему это удобно? #tpyenumerate() в Python - позволяет одновременно проходить по итерируемому объекту и получать индекс каждого элемента - очень удобно и читаемо.- Не нужно самостоятельно создавать счетчик
- Упрощает код при необходимости знать позицию элемента
- Особенно полезна при обработке списков, кортежей, строк и других итерируемых структур
fruits = ['яблоко', 'банан', 'киви']
for index, fruit in enumerate(fruits):
print(f"{index}: {fruit}")
0: яблоко
1: банан
2: киви
Теперь мы можем работать с циклами ещё удобнее!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥2👍1🔥1
def create_counter():
count = 0 # Внутреннее состояние
def counter():
nonlocal count
count += 1
print("Текущий счет:", count)
return counter
my_counter = create_counter()
my_counter() # Текущий счет: 1
my_counter() # Текущий счет: 2
Каждый вызов my_counter() увеличивает внутренний счетчик, который "запомнен" внутри функции. Это и есть замыкание!
- Хранить состояние между вызовами
- Создавать "приватные" переменные
- Сделать код более модульным и безопасным
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1
Это обычный способ создания списков через цикл
for, но более лаконичный и читаемый.res = []
for i in range(10):
if i % 2 == 0:
res.append(i ** 2)
print(res) # [0, 4, 16, 36, 64]
res = [i ** 2 for i in range(10) if i % 2 == 0]
print(res) # [0, 4, 16, 36, 64]
[выражение for переменная in последовательность if условие]
«Добавь выражение в список для каждого элемента, если выполняется условие»
[x for x in range(1, 21) if x % 2 != 0]
[s.upper() for s in ['питон', 'егэ', 'код']]
[x for x in range(10) if x not in (3, 7)]
💭 Когда использовать?
💡 Важно: генераторы не заменяют циклы везде. Но для быстрого и чистого кода они очень полезны.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1