🐍 Укус питона 🐍
2.57K subscribers
1K photos
23 videos
285 links
🐍 Канал о программировании на языке Python. Тематические уроки и лайфхаки.

👽 Админ - @it_dashka
🔊 Купить рекламу: https://telega.in/c/byteofpython

👉 Чат: @abyteofpython
👉 Поделиться с друзьями: @byteofpython
Download Telegram
Зачем используется функция filter() в Python и когда её применять?

Функция filter() возвращает итератор, содержащий только те элементы из итерируемого объекта, для которых заданная функция возвращает True. Это удобно, когда нужно отфильтровать данные по условию, не создавая лишних списков вручную.

Пример:

users = [
{"name": "Alice", "active": True},
{"name": "Bob", "active": False},
{"name": "Charlie", "active": True}
]

active_users = list(filter(lambda u: u["active"], users))
print(active_users)
# ➜ [{'name': 'Alice', 'active': True}, {'name': 'Charlie', 'active': True}]


📌 В этом примере filter() возвращает только активных пользователей.

filter() удобно использовать для очистки данных, предобработки перед ML, фильтрации списков, словарей и генераторов. Это делает код компактным и избавляет от явных циклов, особенно в функциональном стиле.
Что выведет следующий код?
Anonymous Quiz
54%
'try'
27%
'finally'
2%
'except'
17%
Ошибка выполнения
👍1
🔹 Что делает *

Распаковывает позиционные значения — элементы из списка, кортежа, строки и т.д.

Пример:
numbers = [1, 2, 3]
print(*numbers) # Вывод: 1 2 3


Или объединение:
a = [1, 2]
b = [3, 4]
combined = [*a, *b] # [1, 2, 3, 4]


Также *args используется в функциях для сбора неограниченного числа аргументов.


🔹 Что делает **

Распаковывает именованные аргументы из словаря.

Пример:
def greet(name, age):
print(f"{name}, {age} лет")

data = {"name": "Анна", "age": 30}
greet(**data) # Эквивалентно greet(name="Анна", age=30)


Также **kwargs используется для сбора именованных аргументов внутри функций.


🧠 Зачем это нужно

• Удобно передавать аргументы из коллекций

• Компактно объединять и копировать структуры

• Повышает читаемость и гибкость кода
Что выведет следующий код?
Anonymous Quiz
17%
[2, 2, 2]
7%
[None, None, None]
34%
[0, 1, 2]
41%
Ошибка выполнения
🔹 lambda — анонимные функции в одну строку

lambda позволяет создавать небольшие функции без имени. Полезно для простых операций, особенно в сочетании с map(), filter() и sorted().

➡️ Пример:

square = lambda x: x ** 2
print(square(5)) # Вывод: 25


Такая функция не требует def и может быть использована сразу, "на месте". Подходит для одноразовых действий, когда обычная функция — избыточна.
🔹 Тернарный оператор — короткий if в одну строку

В Python можно записать простое условие в одну строку с помощью тернарного оператора.
Формат: a if условие else b

➡️ Пример:

age = 18
status = "взрослый" if age >= 18 else "несовершеннолетний"
print(status)

взрослый


Удобно для присваивания значений на основе условий без многострочного if.
Что выведет следующий код?
Anonymous Quiz
52%
Base
30%
Sub
7%
Ошибка выполнения
11%
None
🔹 list comprehension — создание списков в одну строку

Списковые включения позволяют создавать списки на основе других коллекций кратко и читаемо.

➡️ Пример:

squares = [x**2 for x in range(1, 6)]
print(squares)

[1, 4, 9, 16, 25]


Подходит для фильтрации, преобразования и генерации данных без лишнего кода.
Зачем используется функция zip() в Python и когда её применять

Функция zip() объединяет несколько итерируемых объектов, возвращая итератор кортежей, где каждый кортеж содержит элементы с одинаковым индексом из всех коллекций.

Это удобно для синхронной обработки данных из разных источников.

Пример:

names = ["Alice", "Bob", "Charlie"]
scores = [85, 92, 78]

for name, score in zip(names, scores):
print(f"{name}: {score}")
# ➜ Alice: 85
# ➜ Bob: 92
# ➜ Charlie: 78


📌 В этом примере zip() объединяет списки имён и баллов, позволяя пройтись по ним одновременно.

zip() удобно использовать при работе с таблицами, конфигурациями, CSV-данными, векторными операциями и в ML — когда нужно синхронно итерироваться по признакам и меткам. Код получается чище и безопаснее, чем ручной перебор с индексами.
Что выведет следующий код?
Anonymous Quiz
20%
test
24%
got
16%
set test, test
40%
set test, got
🔹 zip() + unpacking — параллельный перебор списков

С помощью zip() можно перебирать несколько списков одновременно.

А с распаковкой (*) удобно разъединять обратно.

➡️ Пример:

names = ["Анна", "Борис", "Вера"]
scores = [90, 85, 78]

for name, score in zip(names, scores):
print(f"{name}: {score}")

Анна: 90
Борис: 85
Вера: 78


zip() помогает работать с данными построчно и синхронно.

А zip(*iterable) делает обратное — трансформирует строки в колонки.
🔹 set() — быстрое удаление дубликатов

Множество (set) хранит только уникальные значения.

Используется для удаления повторов и быстрой проверки принадлежности.

➡️ Пример:

numbers = [1, 2, 2, 3, 4, 4, 5]
unique = list(set(numbers))
print(unique)

[1, 2, 3, 4, 5]


set() — простой способ избавиться от дубликатов в списке. Порядок элементов не сохраняется.