def remove_duplicates_in_list(seq):
    """Removes and returns a new list with duplicate elements removed and the
    order of elements in the sequence is preserved

    Parameters
    ----------
    seq : list
        the list

    Returns
    -------
    newSeq : list
        the new list with duplicate elements removed

    Examples
    --------
    >>> a = [1, 2, 4, 1, 2, 3, 6, 2, 2, 5, 5, 10, 3, 20, 21, 20, 8, 6]
    >>> gnu.remove_duplicates_in_list(a)
    [1, 2, 4, 3, 6, 5, 10, 20, 21, 8]
    """
    seen = set()
    seen_add = seen.add
    newSeq = [x for x in seq if x not in seen and not seen_add(x)]
    return newSeq