首頁 > 後端開發 > Python教學 > 在 Python 中如何在保留順序的同時有效地從清單中刪除重複項?

在 Python 中如何在保留順序的同時有效地從清單中刪除重複項?

Barbara Streisand
發布: 2024-12-31 05:50:13
原創
722 人瀏覽過

How Can I Efficiently Remove Duplicates from a List While Preserving Order in Python?

從清單中刪除重複項時保留順序

從清單中刪除重複元素同時保持原始順序可能是一個挑戰,因為使用消除重複的集合通常會破壞初始序列。

為了解決這個問題,Python 社群開發了各種內建和慣用的解決方案。最有效的選項之一是稱為f7 的函數,它利用一組來有效地檢測和刪除重複項:

def f7(seq):
    seen = set()
    seen_add = seen.add
    return [x for x in seq if not (x in seen or seen_add(x))]
登入後複製

此函數使用名為see 的集合來快速識別和刪除重複項。秘密優化在於將 saw.add 作為局部變數分配給 saw_add 。這會阻止 Python 在每次迭代時動態解析 saw.add,這可能會因為 saw.add 可能發生變更而導致效能下降。

其他替代方案,例如 ActiveState 中的有序集資料結構,包括如果您預期在相同資料集上執行頻繁的重複刪除操作,也可以使用。

必須注意,在提供的程式碼中,seen.add() 總是傳回 None,因此需要使用邏輯或運算子作為觸發集合更新的方法。

以上是在 Python 中如何在保留順序的同時有效地從清單中刪除重複項?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板