Подтвердить что ты не робот

Python находит разницу между двумя списками

Я новичок в программировании, но продолжаю учиться, а недавно я ударил по стене, поэтому я прошу помощи. Извините, если это обсуждалось ранее, но я не могу найти ответ на свою проблему. У меня есть два списка. И мне нужно сравнить их, и в результате получить объекты, которые НЕ соответствуют. Например:

a = [1,2,3,4,5,6]
b = [1,2,3,4,5,6,7,8,9]
result = [7,8,9].

И мне кажется, что я нашел код и примеры, которые возвращают совпадения. Который мне не нужен.

Списки находятся в файле notepad file.txt для вас, чтобы вы помнили, если вы это поможете мне.:)

4b9b3361

Ответ 1

Вы можете преобразовать списки в настройки и запустить обычные установленные операции, такие как разница или симметричная разница. Например, set(b) - set(a) оценивается как set([7, 8, 9]).

Ответ 2

Если второй набор не всегда является подмножеством первого, то разностный оператор '-' может не всегда возвращать то, что вы ожидаете.

например.

[1,2,3,4,5] - [3,4,5,6,7] = [1,2]

Если вы хотите, чтобы набор элементов в любом списке, но не в обоих списках, используйте симметричный оператор разности "^".

[1,2,3,4,5] ^ [3,4,5,6,7] = [1,2,6,7]

Симметричный разностный оператор, полагая, что он делает то, что вы хотите, также имеет то преимущество, что он является коммутативным. Это означает, что вам не нужно определять, в каком порядке сравнивать наборы, как вы это делаете с разностным оператором.

http://docs.python.org/2/library/stdtypes.html#set