基本数据类型,集合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、综合应用新数据更新老数据的更多相关文章
-
大白话5分钟带你走进人工智能-第二十节逻辑回归和Softmax多分类问题(5)
大白话5分钟带你走进人工智能-第二十节逻辑回归和Softmax多分类问题(5) 上一节中,我们讲 ...
-
centos LAMP第二部分apache配置 下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转 配置apache的访问日志 配置静态文件缓存 配置防盗链 访问控制 apache rewrite 配置开机启动apache tcpdump 第二十节课
centos LAMP第二部分apache配置 下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转 配置apache的访问日志 配置静态文件缓存 配置防盗链 ...
-
风炫安全WEB安全学习第二十节课 反射型XSS讲解
风炫安全WEB安全学习第二十节课 反射型XSS讲解 反射性xss演示 原理讲解 如果一个应用程序使用动态页面向用户显示错误消息,就会造成一种常见的XSS漏洞.通常,该页面会使用一个包含消息文本的参数, ...
-
第十九节,基本数据类型,集合set
集合set,无序,是不允许重复内容的,也就是不允许重复元素,如果有重复,会自动忽略,可接收可迭代类型 (一般用于需要判断和处理交集时候用到) 集合与字典的区别是,集合没有键只有值,字典是有键的字典是一 ...
-
[ExtJS5学习笔记]第二十节 Extjs5配合数组的push方法,动态创建并加载组件
本文地址:http://blog.csdn.net/sushengmiyan/article/details/39226773 官方例子:http://docs.sencha.com/extjs/5. ...
-
第二十节:Asp.Net Core WebApi生成在线文档
一. 基本概念 1.背景 使用 Web API 时,了解其各种方法对开发人员来说可能是一项挑战. Swagger 也称为OpenAPI,解决了为 Web API 生成有用文档和帮助页的问题. 它具有诸 ...
-
第二十节,使用RNN网络拟合回声信号序列
这一节使用TensorFlow中的函数搭建一个简单的RNN网络,使用一串随机的模拟数据作为原始信号,让RNN网络来拟合其对应的回声信号. 样本数据为一串随机的由0,1组成的数字,将其当成发射出去的一串 ...
-
第二十节: 深入理解并发机制以及解决方案(锁机制、EF自有机制、队列模式等)
一. 理解并发机制 1. 什么是并发,并发与多线程有什么关系? ①. 先从广义上来说,或者从实际场景上来说. 高并发通常是海量用户同时访问(比如:12306买票.淘宝的双十一抢购),如果把一个用户看做 ...
-
第二十节:详细讲解String和StringBuffer和StringBuilder的使用
前言 在 Java中的字符串属于对象,那么Java 中提供了 String 类来创建和操作字符串,即是使用对象:因为String类修饰的字符一旦被创建就不可改变,所以当对字符串进行修改的时候,需要使用 ...
随机推荐
-
转 C# 装箱和拆箱[整理]
1. 装箱和拆箱是一个抽象的概念 2. 装箱是将值类型转换为引用类型 :拆箱是将引用类型转换为值类型 利用装箱和拆箱功能,可通过允许值类型的任何值与Object 类型的 ...
-
两个一样的tomcat不能同时启动解决方法
环境:两个Tomcat7.0.20,使用一个JVM,JDK7,Win7 64位系统. 1.使用压缩版的tomcat不能使用安装版的. 2.第一个tomcat的配置不变. 3.增加环境变量CATALIN ...
-
win8找到程序员计算器
最近想用计算器的十进制和十六进制转化的功能,发现win8没有开始菜单了,从网上查了查,原来指令如此简单,特此做笔记,谨防忘记! 操作:win+r打开运行,输入calc,确定就出来了!
-
div 显示与隐藏
visibility隐藏的对象还保留对象显示时所占的物理空间,display则不保留.可以保存下面的代码看看效果: 具体步骤: 代码示例: <div style="border:1px ...
-
bzoj2734: [HNOI2012]集合选数
Description <集合论与图论>这门课程有一道作业题,要求同学们求出{1, 2, 3, 4, 5}的所有满足以 下条件的子集:若 x 在该子集中,则 2x 和 3x 不能在该子集中 ...
-
Mac 命令行中进入带有空格的文件夹
http://blog.sina.com.cn/s/blog_5e8392b10100jkvg.html 今天在公司用mac的时候,有个文件夹的名字有空格,怎么都进不去,在网上一查原来不能直接cd 文 ...
-
hdu_5620_KK&#39;s Steel(水题)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5620 题意:给你一个n长的钢管,要分的尽可能多,且任意三条不能构成三角形 题解:看hint就知道用递推 ...
-
BZOJ-1010-[HNOI2008]玩具装箱toy(斜率优化)
Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为1... ...
-
nginx实现限速
项目中有一个需求,需要限制每个容器的网速,避免某些容器占用太多资源,导致其他容器无法使用,但是docker对于网速的限制支持的有点弱,由于容器中的所有进程和APP的交互都是通过nginx的,所以就想到 ...
-
阿里八八Alpha阶段Scrum(4/12)
今日进度 叶文滔: 整合了一下已完成的界面设计,修复了一些BUG. 问题困难:制作多级悬浮按钮阻碍重重,首先是刚更新不久的Andriod Studio 3.0向前兼容性差,一些语句规则的修改无所适从, ...