import re


def extract_floats(p_string):
    """ Extracts floats from convoluted string.

    Example: '1.23345-412.2451515'. The function will
    return a list [1.23345, -412.2451515].
    """
    pattern = r"[-+]?\d+\.\d+"
    floats = re.findall(pattern, p_string)
    # if len(floats) == 0:
    #     floats = [p_string]
    # else:
    floats = list(map(float, floats))
    return floats