Python: 如何去掉list中的重複值並維持順序?dict.fromkeys()

加入好友
加入社群
Python: 如何去掉list中的重複值並維持順序?dict.fromkeys() - 儲蓄保險王

將一個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。

Python: 如何去掉list中的重複值並維持順序?dict.fromkeys() - 儲蓄保險王

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

加入好友
加入社群
Python: 如何去掉list中的重複值並維持順序?dict.fromkeys() - 儲蓄保險王

儲蓄保險王

儲蓄險是板主最喜愛的儲蓄工具,最喜愛的投資理財工具則是ETF,最喜愛的省錢工具則是信用卡

You may also like...

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *