Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
5
Гибкая фильтрация объявлений по ценовому диапазону и названию
Условие задачи
Имеется массив объектов‑объявлений. Требуется реализовать функцию, которая возвращает те объявления, цены которых находятся внутри указанного диапазона и/или название которых содержит заданный подстроковый запрос. Каждый из критериев – нижняя граница цены, верхняя граница цены и поисковый запрос по названию – должен быть необязательным, т.е. если параметр не передан, соответствующий фильтр не применяется.
items = [
{"title": "3-к. квартира, 80м², 13/22 эт.", "rooms": 3, "price": 70000, "petFriendly": True},
{"title": "2-к. квартира, 45м², 5/5 эт.", "rooms": 2, "price": 60000, "petFriendly": False, "deposit": 60000},
{"title": "2-к. квартира, 44м², 4/4 эт.", "rooms": 2, "price": 45000, "petFriendly": True, "agency": True},
{"title": "2-к. квартира, 44м², 4/4 эт.", "rooms": 2, "price": 45000, "petFriendly": True, "agency": True, "fee": 45000},
# ...
]
Функция должна принимать список объявлений и три необязательных аргумента: min_price, max_price и query. При отсутствии любого из этих аргументов соответствующий критерий фильтрации игнорируется. Возвращаемое значение – список объявлений, удовлетворяющих всем указанным условиям.
Пример вызова:
result = filter_ads(items, min_price=50000, max_price=80000, query="квартира")