第二十节,基本数据类型,集合set、综合应用新数据更新老数据

时间:2022-09-24 08:04:06

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

第二十节,基本数据类型,集合set、综合应用新数据更新老数据的更多相关文章

  1. 大白话5分钟带你走进人工智能-第二十节逻辑回归和Softmax多分类问题(5)

                                                        大白话5分钟带你走进人工智能-第二十节逻辑回归和Softmax多分类问题(5) 上一节中,我们讲 ...

  2. centos LAMP第二部分apache配置 下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转 配置apache的访问日志 配置静态文件缓存 配置防盗链 访问控制 apache rewrite 配置开机启动apache tcpdump 第二十节课

    centos    LAMP第二部分apache配置  下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转  配置apache的访问日志  配置静态文件缓存  配置防盗链 ...

  3. 风炫安全WEB安全学习第二十节课 反射型XSS讲解

    风炫安全WEB安全学习第二十节课 反射型XSS讲解 反射性xss演示 原理讲解 如果一个应用程序使用动态页面向用户显示错误消息,就会造成一种常见的XSS漏洞.通常,该页面会使用一个包含消息文本的参数, ...

  4. 第十九节,基本数据类型,集合set

    集合set,无序,是不允许重复内容的,也就是不允许重复元素,如果有重复,会自动忽略,可接收可迭代类型 (一般用于需要判断和处理交集时候用到) 集合与字典的区别是,集合没有键只有值,字典是有键的字典是一 ...

  5. [ExtJS5学习笔记]第二十节 Extjs5配合数组的push方法,动态创建并加载组件

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/39226773 官方例子:http://docs.sencha.com/extjs/5. ...

  6. 第二十节:Asp.Net Core WebApi生成在线文档

    一. 基本概念 1.背景 使用 Web API 时,了解其各种方法对开发人员来说可能是一项挑战. Swagger 也称为OpenAPI,解决了为 Web API 生成有用文档和帮助页的问题. 它具有诸 ...

  7. 第二十节,使用RNN网络拟合回声信号序列

    这一节使用TensorFlow中的函数搭建一个简单的RNN网络,使用一串随机的模拟数据作为原始信号,让RNN网络来拟合其对应的回声信号. 样本数据为一串随机的由0,1组成的数字,将其当成发射出去的一串 ...

  8. 第二十节: 深入理解并发机制以及解决方案(锁机制、EF自有机制、队列模式等)

    一. 理解并发机制 1. 什么是并发,并发与多线程有什么关系? ①. 先从广义上来说,或者从实际场景上来说. 高并发通常是海量用户同时访问(比如:12306买票.淘宝的双十一抢购),如果把一个用户看做 ...

  9. 第二十节:详细讲解String和StringBuffer和StringBuilder的使用

    前言 在 Java中的字符串属于对象,那么Java 中提供了 String 类来创建和操作字符串,即是使用对象:因为String类修饰的字符一旦被创建就不可改变,所以当对字符串进行修改的时候,需要使用 ...

随机推荐

  1. 转 C# 装箱和拆箱[整理]

    1.      装箱和拆箱是一个抽象的概念 2.      装箱是将值类型转换为引用类型 :拆箱是将引用类型转换为值类型       利用装箱和拆箱功能,可通过允许值类型的任何值与Object 类型的 ...

  2. 两个一样的tomcat不能同时启动解决方法

    环境:两个Tomcat7.0.20,使用一个JVM,JDK7,Win7 64位系统. 1.使用压缩版的tomcat不能使用安装版的. 2.第一个tomcat的配置不变. 3.增加环境变量CATALIN ...

  3. win8找到程序员计算器

    最近想用计算器的十进制和十六进制转化的功能,发现win8没有开始菜单了,从网上查了查,原来指令如此简单,特此做笔记,谨防忘记! 操作:win+r打开运行,输入calc,确定就出来了!

  4. div 显示与隐藏

    visibility隐藏的对象还保留对象显示时所占的物理空间,display则不保留.可以保存下面的代码看看效果: 具体步骤: 代码示例: <div style="border:1px ...

  5. bzoj2734&colon; &lbrack;HNOI2012&rsqb;集合选数

    Description <集合论与图论>这门课程有一道作业题,要求同学们求出{1, 2, 3, 4, 5}的所有满足以 下条件的子集:若 x 在该子集中,则 2x 和 3x 不能在该子集中 ...

  6. Mac 命令行中进入带有空格的文件夹

    http://blog.sina.com.cn/s/blog_5e8392b10100jkvg.html 今天在公司用mac的时候,有个文件夹的名字有空格,怎么都进不去,在网上一查原来不能直接cd 文 ...

  7. hdu&lowbar;5620&lowbar;KK&&num;39&semi;s Steel&lpar;水题&rpar;

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5620 题意:给你一个n长的钢管,要分的尽可能多,且任意三条不能构成三角形 题解:看hint就知道用递推 ...

  8. BZOJ-1010-&lbrack;HNOI2008&rsqb;玩具装箱toy(斜率优化)

    Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为1... ...

  9. nginx实现限速

    项目中有一个需求,需要限制每个容器的网速,避免某些容器占用太多资源,导致其他容器无法使用,但是docker对于网速的限制支持的有点弱,由于容器中的所有进程和APP的交互都是通过nginx的,所以就想到 ...

  10. 阿里八八Alpha阶段Scrum&lpar;4&sol;12&rpar;

    今日进度 叶文滔: 整合了一下已完成的界面设计,修复了一些BUG. 问题困难:制作多级悬浮按钮阻碍重重,首先是刚更新不久的Andriod Studio 3.0向前兼容性差,一些语句规则的修改无所适从, ...