Получите пересечение двух списков

Я хочу пересечь два списка (с НЕ) и вернуть элементы списка A, которых нет в списке B.

пример:

>>> a = [1,2,3,4,5]
>>> b = [1,3,5,6]
>>> list(set(a) ????? set(b))
[2, 4]

person fj123x    schedule 27.08.2013    source источник


Ответы (2)


Вы ищете разницу между наборами; оператор - сделает это за вас:

list(set(a) - set(b))

Если вы используете set.difference() метод, второй операнд не обязательно должен быть установлен, он может быть любым итеративным:

list(set(a).difference(b))

Демо:

>>> a = [1,2,3,4,5]
>>> b = [1,3,5,6]
>>> list(set(a).difference(b))
[2, 4]
person Martijn Pieters    schedule 27.08.2013

Что-то вроде этого?

>>> list(set(a) - set(b))
[2, 4]
person Sukrit Kalra    schedule 27.08.2013