【发布时间】:2021-03-20 14:24:24
【问题描述】:
我想删除 l1 中 l2 中的元素,同时保留重复项。
输入:
l1 = [a, b, b, a, c, c, a]
l2 = [c, b]
输出:
l3 = [a, b, a, c, a]
我试图为此找到一个好的答案,但我似乎找到的只是这样做的方法,这也删除了重复项。首先,我尝试使用 set() 执行此操作,直到我意识到它会删除重复项,然后我尝试使用 numpy 和 setdiff1d 但无法使其正常工作。使用列表理解,如
[item for item in x if item not in y]
还删除了重复项。从列表中删除其他列表中的元素而不删除重复项的最简单方法是什么?列表的顺序并不重要。
【问题讨论】:
-
是否保证您的列表
l2不会有重复项?它 l2 的预期输出是什么,例如[c, b, b]? -
这还不清楚。您要删除
l2的每个值的第一次出现,还是全部删除,但如果它们出现在一组 2 中,则保留一个?在这种情况下,如果连续有 3 个呢?
标签: python python-3.x list