Pythonic style guide
You'd definitely need to name your function something more descriptive than build_tuple for it to be a good idea (and same with t1 and t2 in the multi-liner!).  

I'd use a function if it's something you do more than once or twice, otherwise I'd probably stick with the list comprehension - I find it easier to read than the multi-liner version.

If I was doing a function, I'd probably make it generate the whole list - is there any reason not to do that?

def make_users_to_sent(user_ids, my_database, group):
    return [(my_database.get_user_by_id(x), group['num_sent'][x]) for x in user_ids]

users_to_sent = make_users_to_sent(user_ids, my_database, group)