如何识别从python中的set()中删除的元素?

Gok*_*hna 6 python csv set python-2.7 python-3.x

我尝试使用set()python的方法来查找List中的唯一元素.它可以正常删除所有重复项.但这是我的要求,我想获取使用set()方法删除的元素.有人可以帮助我吗?

a=[1,2,3,1,4]
b=set(a)
Output:[1,2,3,4]
Run Code Online (Sandbox Code Playgroud)

我的预期输出是[1].从set()方法中删除的元素

Sye*_*han 2

您可以扩展 Set 类(拥有自己的 Set 类,例如 MySet)并覆盖此函数

def _update(self, iterable):
    # The main loop for update() and the subclass __init__() methods.
    data = self._data

    # Use the fast update() method when a dictionary is available.
    if isinstance(iterable, BaseSet):
        data.update(iterable._data)
        return

    value = True

    if type(iterable) in (list, tuple, xrange):
        # Optimized: we know that __iter__() and next() can't
        # raise TypeError, so we can move 'try:' out of the loop.
        it = iter(iterable)
        while True:
            try:
                for element in it:
                    data[element] = value
                return
            except TypeError:
                transform = getattr(element, "__as_immutable__", None)
                if transform is None:
                    raise # re-raise the TypeError exception we caught
                data[transform()] = value
    else:
        # Safe: only catch TypeError where intended
        for element in iterable:
            try:
                data[element] = value
            except TypeError:
                transform = getattr(element, "__as_immutable__", None)
                if transform is None:
                    raise # re-raise the TypeError exception we caught
                data[transform()] = value
Run Code Online (Sandbox Code Playgroud)