enumerate()
в Python и когда её применять?Функция
enumerate()
позволяет итерироваться по элементам последовательности вместе с их индексами. Это избавляет от необходимости вручную вести счётчик и делает код более чистым и читаемым.fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits, start=1):
print(index, fruit)
# Вывод:
# 1 apple
# 2 banana
# 3 cherry
enumerate() применяют, когда нужен доступ к индексу и самому элементу одновременно — например, при отладке, нумерации строк, формировании таблиц или логов. Это делает код более питоничным и компактным.
Please open Telegram to view this post
VIEW IN TELEGRAM
В Python декораторы позволяют изменять поведение функций без изменения их кода.
Это "обёртки", которые выполняются до или после основной функции.
def logger(func):
def wrapper(*args, **kwargs):
print(f"Вызов функции {func.__name__}")
return func(*args, **kwargs)
return wrapper
@logger
def say_hello(name):
print(f"Привет, {name}!")
say_hello("Анна")
📌 Здесь @logger добавляет логирование при вызове say_hello, не меняя её код.
Please open Telegram to view this post
VIEW IN TELEGRAM
List comprehension в Python позволяет создавать списки в одну строку вместо циклов. Это делает код компактнее и читаемее
# Обычный способ
squares = []
for i in range(1, 6):
squares.append(i**2)
# List comprehension
squares_compact = [i**2 for i in range(1, 6)]
print(squares_compact) # [1, 4, 9, 16, 25]
📌 Это удобный инструмент для фильтрации и преобразования данных в Python.
Please open Telegram to view this post
VIEW IN TELEGRAM
Генераторы — это функции, которые возвращают значения по одному с помощью ключевого слова yield.
В отличие от списков, они не хранят все данные в памяти сразу, а создают их "на лету".
def count_up_to(n):
for i in range(1, n + 1):
yield i
for num in count_up_to(5):
print(num)
📌 Генераторы экономят память и ускоряют работу с большими данными.
Please open Telegram to view this post
VIEW IN TELEGRAM
Ключевое слово with автоматически управляет открытием и закрытием ресурсов (например, файлов).
Не нужно вручную писать close(), даже если возникнет ошибка.
with open("data.txt", "w") as f:
f.write("Привет, Python!")
📌 После выхода из блока файл закроется автоматически. with упрощает код и предотвращает утечки ресурсов.
Please open Telegram to view this post
VIEW IN TELEGRAM
join()
в Python и когда его применять?Метод
join()
объединяет элементы итерируемого объекта (обычно списка строк) в одну строку с указанным разделителем. Это удобный способ собирать строки без лишних циклов.words = ["Python", "is", "awesome"]
sentence = " ".join(words)
print(sentence)
# ➜ Python is awesome
join() удобно использовать при генерации текстов, формировании путей, обработке CSV-данных и выводе массивов строк. Он делает код лаконичным и более эффективным, чем конкатенация через + в цикле
Please open Telegram to view this post
VIEW IN TELEGRAM
Функция
isinstance()
проверяет, относится ли объект к указанному типу (или кортежу типов).Полезно для валидации данных и написания универсальных функций.
x = 3.14
if isinstance(x, (int, float)):
print("Это число")
Это число
📌 Удобнее и безопаснее, чем сравнение через type().
Please open Telegram to view this post
VIEW IN TELEGRAM
Функция
enumerate()
позволяет перебирать коллекцию с индексами без range(len(...))
.Код становится чище и читаемее.
fruits = ["яблоко", "банан", "груша"]
for i, fruit in enumerate(fruits, start=1):
print(i, fruit)
1 яблоко
2 банан
3 груша
📌 start задаёт, с какого числа начинать счёт
Please open Telegram to view this post
VIEW IN TELEGRAM