🐍 Укус питона 🐍
Открыть в Telegram
🐍 Канал о программировании на языке Python. Тематические уроки и лайфхаки. 👽 Админ - @tg_adminisrator 🔊 Купить рекламу: https://telega.in/c/byteofpython 👉 Чат: @abyteofpython 👉 Поделиться с друзьями: @byteofpython
Больше2 334
Подписчики
Нет данных24 часа
-117 дней
-3730 день
Архив постов
2 334
🎯
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() для удаления дубликатов и эффективной работы с уникальными данными!2 334
🔗
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 334
🐍 Что делает
enumerate() в Python?
enumerate() добавляет индекс при итерации по списку.
✅ Пример:
fruits = ["🍎", "🍌", "🍇"]
for i, fruit in enumerate(fruits, start=1):
print(i, fruit)
1 🍎
2 🍌
3 🍇
Зачем нужно?
• Упрощает работу с индексами в циклах
• Делает код читаемым без range(len())
Используйте enumerate() вместо range(len()) для чистого и Pythonic-кода!2 334
🔥 Что такое
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, если нужно много однотипных объектов и важна производительность!2 334
Что делает
@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 334
Немножко о реализации set в Python
Почему
set в Python не всегда такой хаотичный, как кажется? Разбираемся, как множества устроены под капотом, как работают хэш-таблицы и почему порядок элементов иногда оказывается предсказуемым.2 334
🔥 lambda — короткие функции в Python
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 334
↔️ Разница между
is и == в Python
🔹 == (равенство) проверяет, равны ли значения объектов:
a = [1, 2, 3]
b = [1, 2, 3]
print(a == b) # True (значения одинаковые)
🔹 is (идентичность) проверяет, указывают ли переменные на один и тот же объект в памяти:
print(a is b) # False (разные объекты)
🔹 Но для immutable-объектов (например, int, str, tuple) Python кеширует значения:
x = 256
y = 256
print(x is y) # True (указывают на один объект)
✅ Используйте == для сравнения значений и is для проверки, ссылаются ли переменные на один объект в памяти!2 334
🔥
*args и **kwargs в Python
🔹 *args — передает позиционные аргументы как кортеж:
def add_numbers(*args):
return sum(args)
print(add_numbers(1, 2, 3)) # 6
🔹 **kwargs — передает именованные аргументы как словарь:
def greet(**kwargs):
print(kwargs)
greet(name="Alice", age=25) # {'name': 'Alice', 'age': 25}
✅ Используйте *args для списка значений и **kwargs для гибких параметров!