zoukankan      html  css  js  c++  java
  • 第二十节,基本数据类型,集合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("
    ")
    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)
  • 相关阅读:
    编写登陆认证程序
    模拟实现一个ATM + 购物商城程序
    三级菜单
    12 场景制造
    11 Unity Editor界面
    3.7练习题
    Coolite 弹窗妙用
    Nginx反向代理 实现Web负载均衡
    MySQL 架构
    Lnmmp
  • 原文地址:https://www.cnblogs.com/adc8868/p/5644858.html
Copyright © 2011-2022 走看看