第二十节,基本数据类型,集合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)
第二十节,基本数据类型,集合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类修饰的字符一旦被创建就不可改变,所以当对字符串进行修改的时候,需要使用 ...
随机推荐
- redis - 主从复制与主从切换
redis2.8之前本身是不支持分布式管理的,一般建议使用redis3.0及以后版本 redis主从切换的方法 keepalive 或者 使用sentinel线程管理 说明如何使用sentinel实 ...
- Gdiplus 贴图(助记) -------------------从资源中载入PNG图片
从资源中载入图片,亦可改为从内从中加载: void LoadResImage(int nResID,Image * &lpImage) { HINSTANCE hIns=AfxGetInsta ...
- 跨域资源共享(Cross-Origin Resource Sharing)
目前中文方面的资料还比较少,能搜索到的那仅有的几篇相关介绍,也几乎是雷同的,其中C#方面的更是少之又少. XMLHttpRequest接口是Ajax的根本,而Ajax考虑到安全性的问题,是禁止跨域访问 ...
- 神州数码品众_Android面试
1.进程的定义,进程的调度: 2.线程的定义,多线程出错的描述: 3.数组和链表的定义和区别: 4.对链表的反序: 5.tree高度的计算: 6.设计一个存储系统,可以从客户端进行上传文件: 7.从长 ...
- 第六十八节,htnl全局属性和其他属性
htnl全局属性和其他属性 学习要点: 1.实体 2.元数据 3.全局属性 本章主要探讨HTML5中的HTML实体.以及HTML核心构成的元数据,最后了解一下HTML中的全局属性. 一.实体 HTML ...
- Spring Security(02)——关于登录
目录 1.1 form-login元素介绍 1.1.1 使用自定义登录页面 1.1.2 指定登录后的页面 1.1.3 指定登录失败后的页面 1.2 http-basi ...
- MongoDB高级操作
参考MongoDB菜鸟教程 一.$type操作符 MongoDB 中可以使用的类型如下表所示: 类型 数字 备注 Double 1 String 2 Object 3 Array 4 ...
- Docker私有仓库3
http://www.cnblogs.com/womars/p/5906435.html(上篇地址) 三.测试上两篇 #测试一下 [root@lh- data]# pwd /opt/data [roo ...
- MVC5 Entity Framework学习之创建复杂的数据模型
目录(?)[-] 使用属性来自定义数据模型 DataType属性 StringLength属性 Column 属性 完成对Student实体的更改 Required 属性 Display 属性 Ful ...
- 简单介绍移动端CSS3单位rem的用法
PC端大部份是用px单位,小部分用em单位,而移动端,请全部用rem单位吧.目前大部份设备,包括但不限于iOS 5+.Android 2.3+.Window Phone 8+都是可以兼容的,具体兼容表 ...