假设我们有两个值列表,每个列表只包含其自身的唯一值。在单个列表中永远不会有重复的值。
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']。
有没有办法像['c', 'b', 'f',]和['h', 'i', 'j', 'g']一样从list(set(L1).symmetric_difference(L2))获得两个不同的输出列表?
或者,有没有一种方法可以获得两个单独的列表作为输出,同时只比较两个集合/列表一次?
发布于 2018-11-15 07:41:03
您可以简单地执行以下操作:
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))希望这能有所帮助。
https://stackoverflow.com/questions/53310328
复制相似问题