30秒学会 Python 片段 · 2019年8月18日

30秒学会 Python 片段 – symmetric_difference

Returns the symmetric difference between two iterables, without filtering out duplicate values.

Create a set from each list, then use list comprehension on each one to only keep values not contained in the previously created set of the other.

代码实现

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]