我正在尝试编写一段可以自动分解表达式的代码。例如,如果我有两个列表[1,2,3,4]和[2,3,5],则代码应该能够在两个列表[2,3]中找到共同的元素,并组合其他元素一起在新列表中,即[1,4,5]。
从这篇文章:如何找到列表交集?我看到可以找到共同的元素
set([1,2,3,4]&set([2,3,5]).
有没有一种简单的方法可以从每个列表中检索非公共元素,在我的示例中为[1,4]和[5]?
我可以继续做一个for循环:
lists = [[1,2,3,4],[2,3,5]] conCommon = [] common = [2,3] for elem in lists: for elem in eachList: if elem not in common: nonCommon += elem
但这似乎是多余的且效率低下的。Python是否提供任何方便的功能可以做到这一点?提前致谢!!
对sets 使用对称差分运算符(也称为XOR运算符):
set
>>> set([1,2,3]) ^ set([3,4,5]) set([1, 2, 4, 5])