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

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

DDD
DDD原創
2024-12-20 12:42:19533瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn