首頁 >後端開發 >Python教學 >創建Python字典時如何處理重複鍵?

創建Python字典時如何處理重複鍵?

Barbara Streisand
Barbara Streisand原創
2024-12-13 17:16:09222瀏覽

How Can I Handle Duplicate Keys When Creating a Python Dictionary?

Python 字典中的重複鍵

在程式設計領域,對應將唯一鍵對應到字典的值來組織資料,這被證明是非常寶貴的。然而,標準的Python字典實作遵循嚴格的原則:每個鍵在字典中必須保持唯一。在處理資料集中涉及重複鍵的場景時,此約束帶來了挑戰。

使用重複鍵建立字典

假設我們遇到一個包含重複汽車註冊的文字檔案號碼,每個號碼都與不同的資訊相關聯,例如司機姓名、電話分機和停車位置。任務是建立一個字典,以註冊號碼為鍵,對應的資料為值。以下程式碼片段說明了一種常見方法:

data_dict = {}
data_list = []

def createDictionaryModified(filename):
    path = "C:\Users\user\Desktop"
    basename = "ParkingData_Part3.txt"
    filename = path + "//" + basename
    file = open(filename)
    contents = file.read()
    print(contents, "\n")
    data_list = [lines.split(",") for lines in contents.split("\n")]
    for line in data_list:
        regNumber = line[0]
        name = line[1]
        phoneExtn = line[2]
        carpark = line[3].strip()
        details = (name, phoneExtn, carpark)
        data_dict[regNumber] = details
    print(data_dict, "\n")
    print(data_dict.items(), "\n")
    print(data_dict.values())

但是,由於 Python 的預設字典行為,此程式碼面臨一個限制:重複的鍵會導致覆蓋先前的值。為了避免這個問題,一個解決方案是在字典中儲存列表或集合。

使用 Collections.defaultdict

Python 標準庫為此目的提供了一個有用的工具:集合.defaultdict。此類別使用預設工廠初始化字典,確保不存在的鍵將建立新列表或集合(取決於工廠參數)。

from collections import defaultdict

data_dict = defaultdict(list)

要使用重複鍵填充字典,只需將原來的賦值語句:

data_dict[regNumber] = details

替換為:

data_dict[regNumber].append(details)

這個策略有效地創建了一個列表字典,其中每個鍵對應於關聯值的列表。透過利用 collections.defaultdict,您可以成功處理 Python 字典中的重複鍵。

以上是創建Python字典時如何處理重複鍵?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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