Назад к задачам
Junior — Senior
6

Определение пользователей, появившихся впервые

Компании, где спрашивали:

Лига Цифровой ЭкономикиЛига Цифровой Экономики
Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Нужно отобрать из входящего списка пользователей (incoming_users) тех, кто ещё не присутствует в списке уже зарегистрированных (registered_users). Функция должна вернуть только новых записей.

class User:
    uid: int
    create_dt: Optional[datetime]  # заполняется только при получении из БД

def find_new_users(incoming_users: List[User], registered_users: List[User]) -> List[User]:
    ...

registered_users = [
    User(uid=1, create_dt=...),
    User(uid=2, create_dt=...),
    User(uid=4, create_dt=...)
]

incoming_users = [
    User(uid=2),
    User(uid=4),
    User(uid=8),
    User(uid=16)
]

assert find_new_users(incoming_users, registered_users) == [
    User(uid=8),
    User(uid=16)
]