首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >symmetric_difference输出为两个单独的列表

symmetric_difference输出为两个单独的列表
EN

Stack Overflow用户
提问于 2018-11-15 07:31:39
回答 1查看 19关注 0票数 0

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

代码语言:javascript
复制
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))获得两个不同的输出列表?

或者,有没有一种方法可以获得两个单独的列表作为输出,同时只比较两个集合/列表一次?

EN

回答 1

Stack Overflow用户

发布于 2018-11-15 07:41:03

您可以简单地执行以下操作:

代码语言:javascript
复制
dif_1_from_2 = list(set(L1) - set(L2))
dif_2_from_1  = list(set(L2) - set(L1))

您可以像这样创建一个函数来完成此操作:

代码语言:javascript
复制
def get_symmetric_difference(L1, L2):
    return list(set(L1)-set(L2)), list(set(L2)-set(L1))

然后你这样叫它:

代码语言:javascript
复制
print(get_symmetric_difference(L1, L2))

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53310328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档