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