Sobes.tech
Junior — Senior

Identification of users who appeared for the first time

livecode

Task condition

You need to select from the incoming list of users (incoming_users) those who are not yet present in the list of already registered users (registered_users). The function should return only new entries.

class User:
    uid: int
    create_dt: Optional[datetime]  # filled only when received from the database

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)
]