Ответ 1
Похоже, вам нужна симметричная разница:
a = [1,2,3]
b = [3,4,5]
print(set(a)^set(b))
>>> [1,2,4,5]
Мне нужно сравнить два списка в Python, и я знаю об использовании команды set
для поиска похожих элементов, но есть ли другая команда, которую я мог бы использовать, которая автоматически сравнивала бы их, вместо того чтобы иметь для этого код?
Я хотел бы найти элементы, которые не входят в каждый. Скажем, один из них выглядит следующим образом:
[1, 2, 3, 4, 5, 6]
а второй список:
[1, 2, 3, 4, 6]
Я хочу найти, что 5
отсутствует в списке, надеюсь, с помощью команды, но я знаю, как цитировать сравнение.
Похоже, вам нужна симметричная разница:
a = [1,2,3]
b = [3,4,5]
print(set(a)^set(b))
>>> [1,2,4,5]
docs - это хорошее место для начала. Вот несколько примеров, которые могут помочь вам определить, как вы хотите сравнить свои наборы.
Чтобы найти пересечение (элементы, находящиеся в обоих наборах):
>>> a = set([1, 2, 3, 4, 5, 6])
>>> b = set([4, 5, 6, 7, 8, 9])
>>> a & b
set([4, 5, 6])
Чтобы найти разницу (элементы, которые только в одном наборе):
>>> a = set([1, 2, 3, 4, 5, 6])
>>> b = set([4, 5, 6, 7, 8, 9])
>>> a - b
set([1, 2, 3])
>>> b - a
set([7, 8, 9])
Чтобы найти симметричную разницу (элементы, которые находятся в одном или другом, но не оба):
>>> a = set([1, 2, 3, 4, 5, 6])
>>> b = set([4, 5, 6, 7, 8, 9])
>>> a ^ b
set([1, 2, 3, 7, 8, 9])
Надеюсь, что это поможет.
Простое понимание списка
In [1]: a=[1, 2, 3, 4, 5, 6]
In [2]: b=[1, 2, 3, 4, 6]
In [3]: [i for i in a if i not in b]
Out[3]: [5]