python - 比较两个列表并从 list2 中删除第一个匹配的重复项
问题描述
我有两个列表,我正在尝试从 list2 中删除第一个重复项。
list1 =["cat"]
list2 = ["cat","dog","elephant","cat"]
预期产出
list2 = ["dog","elephant","cat"]
我尝试过使用集合,但这会删除所有重复项。我只想删除在第二个列表中找到的第一个重复项。
new_list = list(set(list2) - set(list1))
解决方案
这是你要找的吗?
>>> list1 = ["cat"]
>>> list2 = ["cat", "dog", "elephant", "cat"]
>>> list2.remove(next(x for x in list1 if x in list2))
>>> list2
['dog', 'elephant', 'cat']
我们使用列表推导来查找两个列表之间的共同元素,然后只查找并删除第一个。
推荐阅读
- php - NginX - 带有 index.php 斜线路径的路径框架 斜线路径
- c++ - 错误:“const char*”和“const char*”类型的无效操作数到二进制“operator+”
- typescript - 如何使用 Typescript 编译器 API 来执行增量和监视模式?
- typescript - 输入'recordedVideoLibraryEntry | null' 不可分配给类型 'recordedVideoLibraryEntry'
- c++ - C ++:在for循环中的迭代期间更新集合中的结构值
- python - 如何在循环中实例化一个对象并将每个实例添加到列表中?
- android - 如何使用 Proto DataStore 保存对象列表
- javascript - 如何将 Svelte 组件导入 JS 文件
- d3.js - 轴缩放:未定义不是对象(评估“d3.event.transform”)
- github-actions - 一段时间后,我的 GitHub Action 的 GitHub API 调用开始失败