<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def recur(obj, type_func_tuple_list=()):
    '''recuring dealing an object'''
    for obj_type, func in type_func_tuple_list:
        if type(obj) == type(obj_type):
            return func(obj)
    # by default, we wolud recurring list, tuple and dict
    if isinstance(obj, list) or isinstance(obj, tuple):
        n_obj = []
        for i in obj:
            n_obj.append(recur(i))
        return n_obj if isinstance(obj, list) else tuple(obj)
    elif isinstance(obj, dict):
        n_obj = {}
        for k,v in obj.items():
            n_obj[k] = recur(v)
        return n_obj
    return obj