def unique_list(obj, key=None):
    """
    Remove same element from list
    :param obj: list
    :param key: key function
    :return: list
    """
    checked = []
    seen = set()
    for e in obj:
        _e = key(e) if key else e
        if _e not in seen:
            checked.append(e)
            seen.add(_e)
    return checked