def sub_list(l):
    """
    Recursively walk a data-structure sorting any lists along the way.
    Any unknown types get mapped to string representation

    :param l: list
    :return: sorted list, where any child lists are also sorted.
    """
    r = []

    for i in l:
        if type(i) in prims:
            r.append(i)
        elif type(i) is list:
            r.append(sub_list(i))
        elif type(i) is dict:
            r.append(sub_dict(i))
        else:
            r.append(str(i))
    r = sorted(r)
    return r
def sub_list(l):
    """
    Recursively walk a data-structure sorting any lists along the way.
    Any unknown types get mapped to string representation

    :param l: list
    :return: sorted list, where any child lists are also sorted.
    """
    r = []

    for i in l:
        if type(i) in prims:
            r.append(i)
        elif type(i) is list:
            r.append(sub_list(i))
        elif type(i) is dict:
            r.append(sub_dict(i))
        else:
            r.append(str(i))
    r = sorted(r)
    return r
def sub_list ( l ) : r = [ ] for i in l : if type ( i ) in prims : r . append ( i ) elif type ( i ) is list : r . append ( sub_list ( i ) ) elif type ( i ) is dict : r . append ( sub_dict ( i ) ) else : r . append ( str ( i ) ) r = sorted ( r ) return r
Recursively walk a data-structure sorting any lists along the way.
    Any unknown types get mapped to string representation

    :param l: list
    :return: sorted list, where any child lists are also sorted.
Recursively walk a data - structure sorting any lists along the way . Any unknown types get mapped to string representation