<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_substructure(data, path):
 """ Tries to retrieve a sub-structure within some data. If the path does not match any sub-structure, returns None. [1, 2, [{'f': [57]}], 4] [1, 2, [{'f': [57]}], 4] 57 None @param data: a container @type data: str|dict|list|(an indexable container) @param path: location of the data @type path: list|str @rtype: * """


    if not len(path):
        return data

    try:
        return get_substructure(data[path[0]], path[1:])
    except (TypeError, IndexError, KeyError):
        return None