Sobes.tech
Back to tasks
Junior — Senior
48

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

Companies where asked:

Лига Цифровой ЭкономикиЛига Цифровой Экономики
Get help with live coding in real time with Sobes Copilot
Task condition

Нужно отобрать из входящего списка пользователей (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)
]