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
Функция
zip()
объединяет элементы из нескольких коллекций в кортежи по индексам.Удобно для параллельного перебора данных
names = ["Анна", "Борис", "Вера"]
scores = [90, 85, 78]
for name, score in zip(names, scores):
print(f"{name}: {score}")
Анна: 90
Борис: 85
Вера: 78
📌 Если длины разные, перебор остановится по самому короткому списку
Please open Telegram to view this post
VIEW IN TELEGRAM