<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def update(records, column, values):
 """Update the column of records :param records: a list of dictionaries :param column: a string :param values: an iterable or a function :returns: new records with the columns updated [800000.0, 8000000.0, 18000000.0] [40, 400, 900] """

    new_records = deepcopy(records)

    if values.__class__.__name__ == 'function':
        for row in new_records:
            row[column] = values(row[column])
    elif isiterable(values):
        for i, row in enumerate(new_records):
            row[column] = values[i]
    else:
        msg = "You must provide a function or an iterable."
        raise ValueError(msg)
    return new_records