You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何打印列表中排除首次出现的重复元素?

解决Python中提取列表重复元素(排除首次出现)的问题

这是个很实用的需求,我给你分享一个简洁高效的解决方案:

核心思路

我们可以通过跟踪已出现元素的方式筛选出非首次出现的重复项:

  • 用集合(set)记录已经遍历过的元素(集合的成员检查效率远高于列表)
  • 遍历原列表时,判断当前元素是否已被记录:
    • 如果已存在,说明不是首次出现,将其加入结果列表
    • 如果不存在,就把它添加到集合中,标记为“已见过”

代码实现

original_list = [1, 2, 1, 1, 1, 2, 3, 4]
seen_elements = set()
duplicates_except_first = []

for item in original_list:
    if item in seen_elements:
        duplicates_except_first.append(item)
    else:
        seen_elements.add(item)

print(duplicates_except_first)  # 输出: [1, 1, 1, 2]

方案优势

  • 效率高:集合的in操作平均时间复杂度是O(1),如果换成列表跟踪,in操作会变成O(n),大列表场景下性能差距明显
  • 保序性:遍历过程完全遵循原列表的顺序,结果和需求的输出顺序一致
  • 通用性:适用于所有可哈希的元素类型(数字、字符串、元组等),如果要处理不可哈希元素(比如列表),只需调整跟踪逻辑即可

内容的提问来源于stack exchange,提问作者Kannan Sethu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:43:11