🔥 lambda — короткие функции в Python
✅ Пример (обычная функция vs. lambda):
🔹 Где используется?
1️⃣
2️⃣
3️⃣
⚡️ Когда использовать
❌ Не стоит использовать
lambda
— это анонимная функция, которая записывается в одну строку и не требует def
. Используется там, где нужна простая операция без имени функции.✅ Пример (обычная функция vs. lambda):
def square(x):
return x ** 2
square_lambda = lambda x: x ** 2
print(square(5)) # 25
print(square_lambda(5)) # 25
🔹 Где используется?
1️⃣
map()
— Применение функции к спискуnums = [1, 2, 3, 4]
squared = list(map(lambda x: x ** 2, nums))
print(squared) # [1, 4, 9, 16]
2️⃣
filter()
— Фильтрация данныхeven = list(filter(lambda x: x % 2 == 0, nums))
print(even) # [2, 4]
3️⃣
sorted()
— Сортировка по ключуpairs = [(1, 'one'), (3, 'three'), (2, 'two')]
pairs.sort(key=lambda x: x[0])
print(pairs) # [(1, 'one'), (2, 'two'), (3, 'three')]
⚡️ Когда использовать
lambda
?•
Когда функция простая и короткая•
Когда она нужна один раз❌ Не стоит использовать
lambda
, если логика сложная – лучше писать def
.👍2
Что делает
Пример:
Зачем нужно?
⚡️
@property
в Python?@property
превращает метод класса в свойство, позволяя обращаться к нему без скобок.Пример:
class Person:
def init(self, name):
self._name = name
@property
def name(self):
return self._name
p = Person("Alice")
print(p.name) # Alice (как атрибут, но с логикой)
Зачем нужно?
•
Позволяет использовать методы как атрибуты•
Защищает данные от прямого изменения•
Позволяет добавить логику без изменения интерфейса⚡️
@property
делает код чище и безопаснее, улучшая инкапсуляцию!❤2
Что выведет код?
Anonymous Quiz
30%
{3}
54%
{1, 2, 3, 4, 5}
13%
{1, 2, 3, 3, 4, 5}
2%
Ошибка выполнения
🔥2
🔥 Что такое
✅ Обычный класс без
✅ Класс с
➕ Плюсы
⚡️ Используйте
slots
в Python и зачем он нужен?slots
ограничивает список атрибутов у экземпляров класса, экономя память за счет отказа от dict
.✅ Обычный класс без
slots
:class Person:
def init(self, name, age):
self.name = name
self.age = age
p = Person("Alice", 25)
p.city = "New York" # Можно добавить новый атрибут
✅ Класс с
slots
:class Person:
slots = ("name", "age") # Разрешены только эти атрибуты
def init(self, name, age):
self.name = name
self.age = age
p = Person("Alice", 25)
p.city = "New York" # ❌ AttributeError: 'Person' object has no attribute 'city'
➕ Плюсы
slots
•
Экономит память (не создается dict
) •
Ускоряет доступ к атрибутам •
Предотвращает создание лишних атрибутов⚡️ Используйте
slots
, если нужно много однотипных объектов и важна производительность!🐍 Что делает
✅ Пример:
Зачем нужно?
Используйте
enumerate()
в Python?enumerate()
добавляет индекс при итерации по списку.✅ Пример:
fruits = ["🍎", "🍌", "🍇"]
for i, fruit in enumerate(fruits, start=1):
print(i, fruit)
1 🍎
2 🍌
3 🍇
Зачем нужно?
•
Упрощает работу с индексами в циклах•
Делает код читаемым без range(len())
Используйте
enumerate()
вместо range(len())
для чистого и Pythonic-кода!Что выведет код?
Anonymous Quiz
9%
None, Hello
19%
Hello, None
58%
Hello, Hello
14%
Ошибка выполнения
👍2
🔗
✅ Пример:
🔹 Как работает
🔹 Где полезен?
zip()
в Python: удобное объединение данныхzip()
соединяет элементы из нескольких последовательностей попарно, создавая кортежи с одинаковыми индексами.✅ Пример:
keys = ["name", "age", "city"]
values = ["Alice", 25, "NY"]
data = dict(zip(keys, values))
print(data) # {'name': 'Alice', 'age': 25, 'city': 'NY'}
🔹 Как работает
zip()
?
• Комбинирует списки в пары.
• Завершается, когда самый короткий список заканчивается.
• Использует итератор, экономя память.🔹 Где полезен?
• Генерация словарей из двух списков.
• Итерация по нескольким последовательностям одновременно.
• Упрощение работы с табличными данными.Используйте zip() для компактного и читаемого кода!
👍2
🎯
✅ Пример:
🔹 Ключевые свойства
🔹 Основные операции:
⚡️ Используйте
set()
в Python: работа с уникальными даннымиset()
— это неупорядоченная коллекция уникальных элементов, которая позволяет легко убирать дубликаты и быстро выполнять операции над множествами.✅ Пример:
numbers = [1, 2, 2, 3, 4, 4, 5]
unique_numbers = set(numbers)
print(unique_numbers) # {1, 2, 3, 4, 5}
🔹 Ключевые свойства
set()
• Хранит только уникальные элементы.
• Поддерживает быстрый поиск (O(1)).
• Не сохраняет порядок элементов.🔹 Основные операции:
• Объединение: set1 | set2
• Пересечение: set1 & set2
• Разность: set1 - set2
⚡️ Используйте
set()
для удаления дубликатов и эффективной работы с уникальными данными!⚙️ Сборщик мусора в Python: как он работает?
В Python управление памятью происходит автоматически с помощью сборщика мусора (Garbage Collector, GC). Он следит за объектами, которые больше не используются, и освобождает занимаемую ими память.
🔹 Подсчет ссылок
Каждый объект хранит количество ссылок на себя. Когда это число становится нулем, объект автоматически удаляется. Однако если два объекта ссылаются друг на друга, но больше нигде не используются, Python не сможет их удалить.
🔹 Алгоритм поколений
Чтобы эффективно управлять памятью, Python разделяет объекты на три группы:
Новые объекты проверяются чаще, а старые — реже, что ускоряет работу сборщика мусора.
🔹 Управление GC
Python справляется сам, но можно управлять GC вручную:
GC в Python делает управление памятью удобным, но понимание его работы помогает писать более эффективный код и избегать утечек памяти.
В Python управление памятью происходит автоматически с помощью сборщика мусора (Garbage Collector, GC). Он следит за объектами, которые больше не используются, и освобождает занимаемую ими память.
🔹 Подсчет ссылок
Каждый объект хранит количество ссылок на себя. Когда это число становится нулем, объект автоматически удаляется. Однако если два объекта ссылаются друг на друга, но больше нигде не используются, Python не сможет их удалить.
🔹 Алгоритм поколений
Чтобы эффективно управлять памятью, Python разделяет объекты на три группы:
•
Gen 0 — новые объекты, проверяются чаще всего.•
Gen 1 — пережившие одну проверку, удаляются реже.•
Gen 2 — долгоживущие объекты, проверяются редко.Новые объекты проверяются чаще, а старые — реже, что ускоряет работу сборщика мусора.
🔹 Управление GC
Python справляется сам, но можно управлять GC вручную:
•
gc.collect() — запустить сборку мусора вручную.•
gc.disable() — отключить GC (не рекомендуется).GC в Python делает управление памятью удобным, но понимание его работы помогает писать более эффективный код и избегать утечек памяти.
Как работает
Метод
✅ Пример:
🔹 Зачем нужно?
⚡️
getitem
в Python?Метод
getitem
позволяет обращаться к объектам класса по индексу или ключу, как к спискам или словарям.✅ Пример:
class CustomList:
def init(self, data):
self.data = data
def getitem(self, index):
return self.data[index] # Позволяет использовать obj[index]
nums = CustomList([10, 20, 30])
print(nums[1]) # 20
🔹 Зачем нужно?
• Позволяет настроить доступ к элементам объекта.
• Делает объекты итерируемыми (например, в for-циклах).
• Помогает создавать свои структуры данных, работающие как списки или словари.⚡️
getitem
делает объекты гибкими и удобными в использовании, улучшая читаемость кода!Что выведет код?
Anonymous Quiz
34%
[2, 3, 4]
41%
deque([2, 3, 4])
16%
deque([1, 2, 3, 4])
9%
Ошибка выполнения