Python 数组去重器

从 Python 列表中过滤重复的项目,同时保持其原始插入顺序。

在编辑器中尝试

概述

删除重复项是软件中最常见的数据清理操作之一。

将列表转换为集合(`set(arr)`)会删除重复项,但会破坏元素的顺序,因为集合是无序的。

为了在保留顺序的同时删除重复项,我们迭代列表并跟踪集合中看到的元素,将新元素附加到结果列表中。

代码和执行输出

高效的 O(n) 保序唯一元素累加器。

remove_duplicates.py
在编辑器中尝试
def remove_duplicates(arr):
    seen = set()
    result = []
    for item in arr:
        if item not in seen:
            seen.add(item)
            result.append(item)
    return result

sample_list = [1, 2, 2, 3, 4, 4, 1, 5]
print("Original:", sample_list)
print("Unique:  ", remove_duplicates(sample_list))
端子输出
Original: [1, 2, 2, 3, 4, 4, 1, 5]
Unique:   [1, 2, 3, 4, 5]

逐步实施

  • 清理搜索历史和交易记录日志
  • 为 SQL 查询准备唯一数据键列表
  • 清理阵列以进行可视化映射

常见问题解答

在Python 3.7+ 中执行此操作的最快方法是什么?

由于Python 3.7+ 保留字典插入顺序,因此您可以运行“list(dict.fromkeys(arr))”来删除重复项,同时在单个优化步骤中保持顺序。

相关主题