<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def weld_arrays_to_vec_of_struct(arrays, weld_types):
 """Create a vector of structs from multiple vectors. Parameters arrays : list of (numpy.ndarray or WeldObject) Arrays to put in a struct. weld_types : list of WeldType The Weld types of the arrays in the same order. Returns ------- WeldObject Representation of this computation. """

    weld_obj = create_empty_weld_object()
    obj_ids = [get_weld_obj_id(weld_obj, array) for array in arrays]

    arrays = 'zip({})'.format(', '.join(obj_ids)) if len(obj_ids) > 1 else '{}'.format(obj_ids[0])
    input_types = struct_of('{e}', weld_types) if len(obj_ids) > 1 else '{}'.format(weld_types[0])
    res_types = struct_of('{e}', weld_types)
    to_merge = 'e' if len(obj_ids) > 1 else '{e}'

    weld_template = """result(
    for({arrays},
        appender[{res_types}],
        |b: appender[{res_types}], i: i64, e: {input_types}|
            merge(b, {to_merge})
    )    
)"""

    weld_obj.weld_code = weld_template.format(arrays=arrays,
                                              input_types=input_types,
                                              res_types=res_types,
                                              to_merge=to_merge)

    return weld_obj