Python - 如何在字典中添加多个键和值

时间:2017-08-06 12:34:32

标签: python 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"对字典进行排序。

2 个答案:

答案 0 :(得分:3)

您希望在字典列表中收集它,因为您要查找每个字典是包含相同键的信息的集合。字典只能包含唯一键,因此为了能够按照您希望的方式构建字典,您需要一个支持这种情况的数据结构。这里的名单是一个很好的候选人。

所以,你想要这样的东西:

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

答案 1 :(得分:0)

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

检查一下: Dictionaries - Learn Python

您可以做的是在列表或数组中转换您的值。