0

假设我们有两个值列表,其中每个列表只包含其自身的唯一值。单个列表中永远不会有重复的值。

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))like ['c', 'b', 'f',]and获取两个单独的输出列表['h', 'i', 'j', 'g']

或者有没有办法获得两个单独的列表作为输出,同时将两个集合/列表相互比较一次?

4

1 回答 1

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

希望这可以帮助。

于 2018-11-14T23:41:02.747 回答