Вывод симметричной_дифференции в виде двух отдельных списков - PullRequest
0 голосов
/ 15 ноября 2018

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

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 Ответ

0 голосов
/ 15 ноября 2018

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

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))

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

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