我正在尝试动态添加字典值和键。
示例:
首先,我将字典改为:
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"对字典进行排序。
答案 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)