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

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

DDD
發布: 2024-12-20 12:42:19
原創
535 人瀏覽過

How to Efficiently Remove Duplicates from a Python List While Maintaining Order?

刪除清單中的重複項

在Python 中,檢查清單中的重複項並傳回沒有重複項的新清單是一項常見任務。有多種方法可以實現此目的。

使用集合

集合是不同物件的無序集合。它們提供了一種刪除重複項的有效方法。要從列表建立集合,只需將其傳遞給 set() 函數即可。若要將其轉換回列表,請使用 list() 函數。但是,此方法不會保留元素的原始順序。

t = [1, 2, 3, 1, 2, 3, 5, 6, 7, 8]
list(set(t))  # [1, 2, 3, 5, 6, 7, 8]
登入後複製

維護順序

如果保留原始順序至關重要,則 collections.OrderedDict可以使用模組。 OrderedDict 維護專案的插入順序。將列表轉換為 OrderedDict,然後返回列表以保留順序。

from collections import OrderedDict
list(OrderedDict.fromkeys(t))  # [1, 2, 3, 5, 6, 7, 8]
登入後複製

在 Python 3.7 中使用字典

在 Python 3.7 及更高版本中,常規字典也保持插入順序。因此,您可以使用以下方法:

list(dict.fromkeys(t))  # [1, 2, 3, 5, 6, 7, 8]
登入後複製

注意事項

請注意,所有這些方法都要求清單中的項目是可散列的(即不可變的) 。如果項目不可散列(例如清單),則需要採用涉及嵌套循環比較的較慢方法。

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

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