2017-08-06 902 views
-2

我试图动态地添加字典值和键。Python - 如何在字典中添加多个键和值

实施例:

首先有我将作为字典:

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'}) 

等等.....

以后,我到dict1为每ID如下排序:

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”对字典进行排序。

+0

'dict1 =({“ID”:2048,“名称”:“约翰”,“父亲姓名”:“大卫”} ,{'ID':2054,'Name':'steve','父名':'鸟'})'不是一个dicti onary,但是有一系列的词组。使用列表中的字典在每次迭代中附加字典。 – Ricardo

回答

0

我相信字典只支持一个键和一个值。

检查了这一点: Dictionaries - Learn Python

你可以做的是在列表或数组改变你的价值。

+0

值可以是一个列表。 – Nenad

2

你想收集这些字典列表,因为你正在寻找每个字典是一个拥有相同的密钥信息的集合。字典只能保存唯一的密钥,因此为了能够按照您希望构建字典的方式来创建字典,您需要一个支持此字典的数据结构。这里的名单是一个很好的候选人。

所以,你想是这样的:

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 
+0

感谢您的回答.... – Shanky