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))」來刪除重複項,同時在單一最佳化步驟中保持順序。

相關主題