Source code for relsad.utils.set

"""
This module contains set operation utilities
"""


[docs]def unique(sequence: list): """ Return list of unique elements while preserving the order Parameters ---------- sequence : list List of elements Returns ------- unq : list List of unique elements with preserved order """ seen = set() unq = [x for x in sequence if not (x in seen or seen.add(x))] return unq
[docs]def subtract(list1: list, list2: list): """ Return difference between lists while preserving the order Parameters ---------- list1 : list list2 : list Returns ------- difference : list The difference between lists with preserved order """ difference = [x for x in list1 if x not in list2] return difference
[docs]def intersection(list1: list, list2: list): """ Returns the intersection between two list while preserving the order Parameters ---------- list1 : list List 1 list2 : list List 2 Returns ------- intersec : list The intersection between two list with preserved order """ intersec = [x for x in list1 if x in list2] return intersec