首页 > 解决方案 > 比较两个列表并从 list2 中删除第一个匹配的重复项

问题描述

我有两个列表,我正在尝试从 list2 中删除第一个重复项。

list1 =["cat"]
list2 = ["cat","dog","elephant","cat"]

预期产出

list2 = ["dog","elephant","cat"]

我尝试过使用集合,但这会删除所有重复项。我只想删除在第二个列表中找到的第一个重复项。

new_list = list(set(list2) - set(list1))

标签: pythonpython-3.xlist

解决方案


这是你要找的吗?

>>> list1 = ["cat"]
>>> list2 = ["cat", "dog", "elephant", "cat"]
>>> list2.remove(next(x for x in list1 if x in list2))
>>> list2
['dog', 'elephant', 'cat']

我们使用列表推导来查找两个列表之间的共同元素,然后只查找并删除第一个。


推荐阅读