基本数据类型,集合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)