Вывод симметричной_дифференции в виде двух отдельных списков

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

L1 | L2
-------
a  |  a
b  |  d
c  |  e
d  |  g
e  |  h
f  |  i
   |  j

Мы можем получить различия этих списков, используя set(L1).symmetric_difference(L2), но, к сожалению, результаты сводятся воедино в одном списке. Например, вывод list(set(L1).symmetric_difference(L2)) является ['c', 'b', 'h', 'i', 'j', 'f', 'g'],

Есть ли способ получить два отдельных списка вывода из list(set(L1).symmetric_difference(L2)) лайк ['c', 'b', 'f',] а также ['h', 'i', 'j', 'g'] вместо?

Или есть способ получить два отдельных списка в качестве выходных данных, сравнивая эти два набора / списки друг с другом только один раз?

1 ответ

Вы можете просто сделать следующее:

dif_1_from_2 = list(set(L1) - set(L2))
dif_2_from_1  = list(set(L2) - set(L1))

И вы можете создать функцию для этого следующим образом:

def get_symmetric_difference(L1, L2):
    return list(set(L1)-set(L2)), list(set(L2)-set(L1))

и затем вы называете это так:

print(get_symmetric_difference(L1, L2))

Надеюсь это поможет.

Другие вопросы по тегам