<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def check_for_invalid_columns( problems: List, table: str, df: DataFrame ) -> List: """ Check for invalid columns in the given GTFS DataFrame. Parameters problems : list A four-tuple containing 1. A problem type (string) equal to ``'error'`` or ``'warning'``; ``'error'`` means the GTFS is violated; ``'warning'`` means there is a problem but it is not a GTFS violation 2. A message (string) that describes the problem 3. A GTFS table name, e.g. ``'routes'``, in which the problem occurs 4. A list of rows (integers) of the table's DataFrame where the problem occurs table : string Name of a GTFS table df : DataFrame The GTFS table corresponding to ``table`` Returns ------- list The ``problems`` list extended as follows. Check whether the DataFrame contains extra columns not in the GTFS and append to the problems list one warning for each extra column. """

    r = cs.GTFS_REF
    valid_columns = r.loc[r["table"] == table, "column"].values
    for col in df.columns:
        if col not in valid_columns:
            problems.append(
                ["warning", f"Unrecognized column {col}", table, []]
            )

    return problems