第二十节,基本数据类型,集合set、综合应用新数据更新老数据
基本数据类型,集合set、综合应用新数据更新老数据
创建两个字典
新数据,更新原始数据,a为原始数据,b为新数据
1,分别获取到a字典和b字典的key(键),将两个字典的键分别转换成两个集合
2,找出a2集合里存在,b2集合里不存在的元素,得到:{'#2', '#3'}(需要删除:?)
3,找出b2集合里存在,a2集合里不存在的元素,得到:{'#4', '#7'}(需要新建:?)
4,找出a2集合和b2集合有交集的元素,也就是a2集合和b2集合都存在的元素,得到:{'#1'}(需要更新:?)
5,在原始数据里(将原始数据有的,新数据没有的删除)
6,在原始数据里(将新数据有的,原始数据没有的追加进去)
7,在原始数据里(原始数据和新数据都有的,将新数据的值更新到原始数据里)
#!/usr/bin/env python # -*- coding:utf-8 -*- #创建两个字典 #新数据,更新原始数据,a为原始数据,b为新数据 a = { "#1":11, "#2":22, "#3":100 } print("原始数据",a) b = { "#1":33, "#4":22, "#7":100 } print("新的数据",b) #取出a字典里的key(键),得到:dict_keys(['#1', '#2', '#3']) a1 = a.keys() #将a1得到的键转换成集合,得到:{'#3', '#2', '#1'} a2 = set(a1) #取出b字典里的key(键),得到:dict_keys(['#4', '#1', '#7']) b1 = b.keys() #将b1得到的键转换成集合,得到:{'#7', '#4', '#1'} b2 = set(b1) #找出a2集合里存在,b2集合里不存在的元素,得到:{'#2', '#3'}(需要删除:?) a3 = a2.difference(b2) #找出b2集合里存在,a2集合里不存在的元素,得到:{'#4', '#7'}(需要新建:?) b3 = b2.difference(a2) #找出a2集合和b2集合有交集的元素,也就是a2集合和b2集合都存在的元素,得到:{'#1'}(需要更新:?) c = a2.intersection(b2) #删除原始数据,需要删除的 #a3集合里的是需要删除的 for i in a3: #a3集合里每次循环到的作为a字典的键,删除此键元素 del a[i] print("\n") print("删除原始数据里面,新数据不存在的",a) #新建原始数据,需要新建的 #b3集合里的是需要新建的 for i in b3: #将b3集合里循环到的重新赋值给一个变量 j1 = i #将b3集合里循环的的作为b字典的键,获取到此键对应的值,重新赋值给一个变量 j2 = b[i] #将新的元素追加到a字典 a[j1] = j2 print("新数据里面有,原始数据里面没有的,添加到原始数据",a) #更新原始数据,需要更新的 #c集合里的就是需要更新的 for i in c: g = i a[g] = b[g] print("原始数据里有,新数据里也有的,将新数据更新到原始数据",a)