【发布时间】:2018-11-05 22:28:32
【问题描述】:
为什么会这样:
a = ["one", "two","three"]
b = ["one","three"]
c = set(a)-set(b)
d = set(b)-set(a)
e = []
e.append(d)
e.append(c)
这不是:
example = set(set([a])-set([b])) + set(set([b])-set([a]))
我知道,就索引数量而言,第一种情况会产生与第二种情况不同的结果。
如何在不使用联合或符号项的情况下使用集合制作第二个版本。
期望的输出:做一个最终的列表,你会得到:
output = ["two"]
基本上只使用 set 函数找到不常见的元素,并使其成为一个衬里。
【问题讨论】:
-
为什么不只是
set(a).symmetric_difference(b)? -
我不明白你为什么有这两个额外的集合调用。为什么不只是
(set([a])-set([b])) + (set([b])-set([a])? -
@DanielRoseman 如果我这样做,我会得到:TypeError: unhashable type: 'list'