How do I subtract one list from another?

Use a list comprehension to compute the difference while maintaining the original order from x:

[item for item in x if item not in y]

If you don’t need list properties (e.g. ordering), use a set difference, as the other answers suggest:

list(set(x) - set(y))

To allow x - y infix syntax, override __sub__ on a class inheriting from list:

class MyList(list):
    def __init__(self, *args):
        super(MyList, self).__init__(args)

    def __sub__(self, other):
        return self.__class__(*[item for item in self if item not in other])

Usage:

x = MyList(1, 2, 3, 4)
y = MyList(2, 5, 2)
z = x - y   

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)