【发布时间】:2018-08-07 02:30:08
【问题描述】:
我知道已经有人问过这个问题的变体,但我能找到的所有问题都没有解决我的具体目标。
我试图在 Python 中使用字符串元素获取两个列表,并删除两者的重叠部分。例如:
list1 = ["25","+","7","*","6","/","7"]
list2 = ["7","*","6"]
应该去
["25","+","/","7"]
我已经考虑过类似
的列表理解[i for i in list1 if not in list2]
但这会产生
["25","+","/"]
因为“7”的两个实例都将被删除。
我怎样才能在这里实现我想要做的事情?谢谢。
编辑 - 这被标记为可能重复。在我的列表理解示例中,我已经解释了它与链接的问题有何不同。
【问题讨论】:
-
你可以尝试使用计数器
-
顺序重要吗?
-
@blhsing 这不是 - 你链接的问题涉及每一个事件,而我用我的示例展示了列表理解,这不是我想要的。
-
这类似于在较大的字符串中查找子字符串。我建议您阅读有关 KMP (Knuth-Morris-Pratt) 算法的信息,它可以直接应用于您的场景。