在 Python 中的字典列表中新增自定義鍵值對
處理結構化資料是程式設計中的一項常見任務,Python 提供了強大的資料結構,如列表和字典,可以有效地處理此類資料。在許多情況下,您可能會遇到需要透過新增自定義鍵值對來增強現有資料結構的情況。當您想要將附加資訊或元資料與現有資料關聯時,這尤其有用。
在 Python 中,列表是有序的專案集合,列表中的每個專案都可以是一個字典——一種儲存鍵值對的關聯資料結構。透過向列表中的字典新增自定義鍵值對,您可以擴充套件和調整資料結構,以更好地滿足您的特定需求。
步驟 1:建立字典列表
首先,讓我們建立一個可以使用的示例字典列表:
data = [ {'name': 'John', 'age': 25}, {'name': 'Jane', 'age': 30}, {'name': 'Alex', 'age': 35} ]
在此示例中,我們有一個名為 data 的列表,其中包含三個字典,每個字典代表一個具有各自姓名和年齡的人。
步驟 2:新增自定義鍵值對
要向列表中的每個字典新增自定義鍵值對,您可以遍歷列表並分別更新每個字典。這是一個向每個字典新增“城市”鍵及其對應值的示例:
for item in data: item['city'] = 'New York'
執行此程式碼片段後,更新後的 data 列表將如下所示:
[ {'name': 'John', 'age': 25, 'city': 'New York'}, {'name': 'Jane', 'age': 30, 'city': 'New York'}, {'name': 'Alex', 'age': 35, 'city': 'New York'} ]
步驟 3:有條件地新增自定義鍵值對
有時,您可能希望根據特定條件有條件地新增自定義鍵值對。在這種情況下,您可以使用條件語句來控制自定義鍵值對的新增。這是一個示例,它只向年齡大於 30 的人的字典新增“職業”鍵和值為“工程師”的值:
data[1]['hobby'] = 'Reading'
執行此程式碼片段後,data 列表將更新如下:
[ {'name': 'John', 'age': 25, 'city': 'New York'}, {'name': 'Jane', 'age': 30, 'city': 'New York'}, {'name': 'Alex', 'age': 35, 'city': 'New York', 'profession': 'Engineer'} ]
步驟 4:向特定字典新增自定義鍵值對
如果要向列表中的特定字典新增自定義鍵值對,可以使用其索引訪問該字典並新增所需的鍵值對。這是一個示例,它向列表中的第二個字典新增“愛好”鍵和值為“閱讀”的值:
data[1]['hobby'] = 'Reading'
執行此程式碼片段後,data 列表將更新如下:
[ {'name': 'John', 'age': 25, 'city': 'New York'}, {'name': 'Jane', 'age': 30, 'city': 'New York', 'hobby': 'Reading'}, {'name': 'Alex', 'age': 35, 'city': 'New York', 'profession': 'Engineer'} ]
更新現有鍵值對
向列表中的字典新增自定義鍵值對時,瞭解它如何與現有鍵值對互動非常重要。如果字典中已經存在某個鍵,則為該鍵賦值新值將更新現有值。此行為允許您修改或擴充套件現有資料,而不會丟失任何先前儲存的資訊。例如,如果我們的列表中有以下字典:
{'name': 'John', 'age': 25}
並且我們添加了一個自定義鍵值對,“age”: 30,則字典將更新為
{'name': 'John', 'age': 30}
在這種情況下,“age”鍵的值已更新為 30。
多個自定義鍵值對
您可以透過為每個鍵值對重複賦值語句,向列表中的字典新增多個自定義鍵值對。例如:
for item in data: item['key1'] = value1 item['key2'] = value2 # Add more key-value pairs as needed
這允許您根據需要向每個字典新增任意數量的自定義鍵值對。
深複製與淺複製
處理字典列表時,務必瞭解淺複製和深複製的概念。淺複製建立一個新列表,該列表引用與原始列表相同的字典,而深複製建立字典的完全獨立副本。
如果要建立一個包含字典獨立副本的新列表,可以使用 copy 模組或列表推導式。這確保修改一個列表或字典不會影響另一個。淺複製在您想要多個對相同資料的引用時很有用,但如果您想要修改一個副本而不影響其他副本,則需要深複製。
錯誤處理
新增自定義鍵值對時,最好處理潛在的錯誤。例如,您可能需要在新增鍵之前檢查字典中是否已經存在特定鍵。這有助於防止鍵衝突或意外行為。您可以使用 in 運算子檢查鍵是否存在,然後再為其賦值。這是一個演示透過檢查鍵是否存在來進行錯誤處理的示例:
for item in data: if 'city' not in item: item['city'] = 'Unknown'
在這種情況下,如果字典中已經存在“city”鍵,則不會覆蓋它。
不可變字典
在 Python 中,字典預設情況下是可變的,這意味著您可以在建立後修改它們。但是,如果您使用的是不可變字典(例如使用 dict() 建構函式建立的字典),則無法直接新增或修改鍵值對。在這種情況下,您可能需要建立一個包含所需鍵值對的新字典,並替換列表中的現有字典。例如,如果您有這樣的不可變字典:
immutable_dict = {'name': 'John', 'age': 25}
您不能直接向其中新增自定義鍵值對。您可以建立一個新字典並替換現有字典
immutable_dict = {'name': 'John', 'age': 25, 'city': 'New York'}
結論
在這裡,我們學習瞭如何在 Python 中的字典列表中新增自定義鍵值對。透過遍歷列表並更新每個字典,您可以輕鬆新增自定義值以滿足您的特定需求。無論您是想向所有字典新增值,還是根據某些條件有條件地新增值,Python 都提供了一種靈活且直觀的方法來完成這些任務。掌握了這些知識,您現在就可以在 Python 程式中操作和擴充套件字典列表的功能。