【发布时间】:2012-07-06 02:16:18
【问题描述】:
我正在尝试编写一段可以自动分解表达式的代码。例如, 如果我有两个列表 [1,2,3,4] 和 [2,3,5],代码应该能够找到两个列表 [2,3] 中的共同元素,并将其余部分组合起来元素一起在一个新列表中,即 [1,4,5]。
来自这个帖子:How to find list intersection? 我看到共同的元素可以通过
找到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 是否提供任何方便的函数来做到这一点?提前致谢!!
【问题讨论】:
-
您想要获得单独的列表,例如 [1,4] 和 [5],还是单个列表 [1,4,5]?
标签: python algorithm list set discrete-mathematics