將一個list轉為set,可以去除重複值
但因為set是無序的
將set 再轉為list
原本的順序可能被打亂
要如何去除重複值並維持順序?
在 Python 中,字典 (dict) 的有序性是從 Python 3.7 版本開始的。在這個版本之前,字典中元素的順序是不確定的,這意味著字典的鍵值對的存儲和遍歷順序不能保證與添加順序相同。
自 Python 3.7 起,字典被改進為按照插入順序來維護鍵值對。這一改變最初在 Python 3.6 中作為實現細節被引入,但直到 3.7 版本才正式成為語言規範的一部分,確保所有 Python 的實現都必須按照這種方式操作字典。
這項改變意味著當你在 Python 3.7 及以後的版本中添加項到字典時,可以預期該項的插入位置就是它的存儲和遍歷位置。這使得某些操作變得更加直觀和便捷,例如保持配置項的順序或者在需要有序數據時無需額外使用如 OrderedDict 這類的數據結構。
dict.fromkeys() 是一個 Python 的內建方法,用於創建一個新字典,其中包含來自給定可叠代對象的鍵,所有鍵對應的值則設置為一個指定的統一值。這個方法非常有用當你需要初始化一個字典,使得多個鍵共享相同的初始值。
dict.fromkeys(iterable, value=None)
iterable: 一個可迭代對象,其元素將被用作新字典的鍵。
value (可選): 所有鍵的初始值,默認為 None。
code:
# 原始列表,包含重覆元素
lis = [1, 2, 3, 3, 4, 4, 5]
# 使用 dict.fromkeys() 去除重覆元素並保持原始順序
unique_dict = dict.fromkeys(lis)
# 將字典的鍵轉換為列表
unique_list = list(unique_dict)
# 輸出結果
print(unique_list)
說明:
dict.fromkeys(lis) 創建了一個字典,其中 lis 中的每個元素都作為鍵被添加到字典中。由於字典的鍵必須是唯一的,所以重覆的元素在這個過程中被自動丟棄。
由於 Python 3.7 及更高版本的字典保持鍵的插入順序,所以轉換後的字典會按照 lis 中元素首次出現的順序來排列鍵。
list(dict.fromkeys(lis)) 簡單地將字典的鍵轉換回列表形式,這樣就得到了一個沒有重覆元素、且保持原始插入順序的列表。
這種方法是去除列表重覆元素並保持順序的一種非常高效的方式,特別是在處理大型數據集時,相比傳統的遍歷或其他方法,它更為簡潔且性能更好。
推薦hahow線上學習python: https://igrape.net/30afN
近期留言