列表的对称差集
返回两个可迭代对象的对称差集,不过滤重复值。
- 从每个列表创建一个
set
。 - 对每个列表使用列表推导式,只保留不包含在另一个列表的先前创建的集合中的值。
def symmetric_difference(a, b):
(_a, _b) = (set(a), set(b))
return [item for item in a if item not in _b] + [item for item in b
if item not in _a]
symmetric_difference([1, 2, 3], [1, 2, 4]) # [3, 4]