def pad_list(lst: list, length: int, start_index: int=0, pad_value=0.0) ->list:
    """
    Pads a list to the specified length with the provided value starting and the specified index.

    :param lst: list to pad
    :param length: target length of the return list
    :param start_index: the starting index where to insert the pad
    :param pad_value: value to pad the list with
    :return: padded list
    :rtype: list
    """
    if start_index is 0:
        return [pad_value] * (length - len(lst)) + lst
    else:
        return lst[0:start_index] + [pad_value] * (length - len(lst)) + lst[
            start_index:]
