簡體   English   中英

Python-如何在字典中添加多個鍵和值

[英]Python - How to add multiple keys and values in dictionary

我正在嘗試動態添加字典值和鍵。

例:

首先,我將字典設為:

dict1 = {'ID':2048, 'Name':'john', 'Father Name':'David'}

然后在下一個迭代字典中應使用以下內容進行更新:

dict1 = ({'ID':2048, 'Name':'john', 'Father Name':'David'}, {'ID':2054, 'Name':'steve', 'Father Name':'Bird'})

然后下一次迭代將是

dict1 = ({'ID':2048, 'Name':'john', 'Father Name':'David'}, {'ID':2054, 'Name':'steve', 'Father Name':'Bird'}, {'ID':2046, 'Name':'Calvin', 'Father Name':'Adam'})

等等.....

然后我必須按照ID對dict1進行排序,如下所示:

dict1 = ({'ID':2046, 'Name':'Calvin', 'Father Name':'Adam'}, {'ID':2048, 'Name':'john', 'Father Name':'david'}, {'ID':2054, 'Name':'steve', 'Father Name':'Bird'})

我試過下面的代碼:

dict1 = {}

## Here Candidate_ID, Candidate_Name and Candidate_Father_Name will be updated as per the script flow.
dict1.update({'ID': Candidate_ID, 'Name': Candidate_Name, 'Father Name' : Candidate_Father_Name)

請建議如何更新具有相同值(ID,名稱,父親姓名)的字典中的鍵,然后對具有“ ID”值的字典進行排序。

您希望將其收集在詞典列表中,因為您正在尋找每個詞典都是具有相同鍵的信息的集合。 字典只能包含唯一鍵,因此為了能夠按照您希望的方式來構造字典,您需要一種支持該功能的數據結構。 這里的清單很適合。

因此,您想要這樣的事情:

data = []
user_data = {'ID':2048, 'Name':'john', 'Father Name':'David'}
data.append(user_data)
new_user_data = {'ID':2049, 'Name':'bob', 'Father Name':'McBobsalot'}
data.append(new_user_data)

數據輸出:

data = [{'ID':2048, 'Name':'john', 'Father Name':'David'}, {'ID':2049, 'Name':'bob', 'Father Name':'McBobsalot'}]

另一種解決方法是,仍然可以使用字典詞典,但是您需要進行一些重組。 考慮一下,讓“ ID”本身是每個字典的鍵,並且所述鍵的值就是相關字典。 為了說明這一點,請看一下它的外觀:

data = {
    2048: {'ID':2048, 'Name':'john', 'Father Name':'David'}, 
    2049: {'ID':2049, 'Name':'bob', 'Father Name':'McBobsalot'}
}

添加到字典中的一個非常簡單的示例如下所示:

data = {}
new_data = {'ID':2048, 'Name':'john', 'Father Name':'David'}
data[new_data['ID']] = new_data

一個非常簡單的方法來動態地支持此操作,您只需傳遞字典和要添加的數據即可:

def add_data(your_dict, new_data):
    your_dict[new_data['ID']] = new_data
    return your_dict

我相信字典僅支持一鍵和一種價值。

檢查一下: 詞典-學習Python

您可以做的就是在列表或數組中轉換值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM