<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def split_list( list_object = None, granularity = None ):
 """ This function splits a list into a specified number of lists. It returns a list of lists that correspond to these parts. Negative numbers of parts are not accepted and numbers of parts greater than the number of elements in the list result in the maximum possible number of lists being returned. """

    if granularity < 0:
        raise Exception("negative granularity")
    mean_length = len(list_object) / float(granularity)
    split_list_object = []
    last_length = float(0)
    if len(list_object) > granularity:
        while last_length < len(list_object):
            split_list_object.append(
                list_object[int(last_length):int(last_length + mean_length)]
            )
            last_length += mean_length
    else:
        split_list_object = [[element] for element in list_object]
    return split_list_object