Python之路【第三篇】:Python基础(10)——set集合

# 练习:寻找差异# # 数据库中原有old_dict = {    "#1":8,    "#2":4,    "#4":2,}## cmdb 新汇报的数据new_dict = {    "#1":4,    "#2":4,    "#3":2,}## 需要删除:?# 分析:# 1、需要删除的数据,即old_dict中有的,new_dict中没有的,就是代表已经过时的数据,就是我们需要删除的。# 即只要找到字典中的key就行,key在字典中有唯一性。# 上面学到的set集合就带了这样的功能,我们只要拿到key的数据放到set集合中,就能实现我们的需求。# 2、但是set集合只能处理元素,不能处理字典。所以我们需要将字典里面的key先提取出来,使用dict字典的内置方法keys()# ( 7  radiansdict.keys() 以列表返回一个字典所有的键)old_keys = old_dict.keys()new_keys = new_dict.keys()# print(old_keys)# 输出# dict_keys([‘#1‘, ‘#4‘, ‘#2‘])# print(type(old_keys))# 输出# <class ‘dict_keys‘>

# 3、将来列表转换成集合old_set = set(old_keys)## old_set = set(old_dict.keys())new_set = set(new_keys)## new_set = set(new_dict.keys())# print(old_set)# print(type(old_set))# 输出# {‘#1‘, ‘#2‘, ‘#4‘}# <class ‘set‘># print(new_set)# print(type(new_set))# # 输出# {‘#3‘, ‘#2‘, ‘#1‘}# <class ‘set‘># 4、通过set集合的difference方法, old_set中存在,new_set中不存在的,得到应该删除的数据remove_set = old_set.difference(new_set)# print(remove_set)# 结果# {‘#4‘}

# 需要新建:?# 分析:new_set中存在的,old_set中不存在的,就是需要新建的, 还是用difference方法,将A和B反过来。add_set = new_set.difference(old_dict)# print(add_set)# 结果# {‘#3‘}

# 需要更新:?# 分析:old_set和new_set相同都有的就是需要更新的,谁在前面都可以。取交集,使用intersection()方法update_set = old_set.intersection(new_set)# print(update_set)# 结果# {‘#1‘, ‘#2‘}

# 交集# def intersection(self, *args, **kwargs):  # real signature unknown#     """#     Return the intersection of two sets as a new set. 交集##     (i.e. all elements that are in both sets.)#     """#     pass

# s1 = {11,22,33}# s2 = {22,33,44}# s3 = s1.intersection(s2)# print(s3)# 输出# {33, 22}
时间: 2024-12-18 20:24:51

Python之路【第三篇】:Python基础(10)——set集合的相关文章

python之路第三篇

python文件目录操作 python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目录名:os.listdir() 函数用来删除一个文件:os.remove() 删除多个目录:os.removedirs(r“c:\python”) 检验给出的路径是否是一个文件:os.path.isfile() 检验给出的路径是否是一个目录:os.path.isdir()

Python之路【第二篇】:Python基础(一)

Python之路[第二篇]:Python基础(一) 入门知识拾遗 一.作用域 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. 1 2 3 if 1==1:     name = 'wupeiqi' print  name 下面的结论对吗? 外层变量,可以被内层变量使用 内层变量,无法被外层变量使用 二.三元运算 1 result = 值1 if 条件 else 值2 如果条件为真:result = 值1如果条件为假:result = 值2 三.进制 二进制,01 八进

Python之路【第九篇】:Python基础(26)——socket server

socketserver Python之路[第九篇]:Python基础(25)socket模块是单进程的,只能接受一个客户端的连接和请求,只有当该客户端断开的之后才能再接受来自其他客户端的连接和请求.当然我 们也可以通过python的多线程等模块自己写一个可以同时接收多个客户端连接和请求的socket.但是这完全没有必要,因为python标准库已经为 我们内置了一个多线程的socket模块socketserver,我们直接调用就可以了,完全没有必要重复造轮子. 我们只需简单改造一下之前的sock

Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信. Memc

七日Python之路--第三天

之前由于看基础看的觉着没意思,才去提前看一下Django的.现在突然不知到该干啥了. 不管什么语言,官方文档是必须的.so........... 莫名浮躁,实在看不下去........   待会研究 re 吧.虽然之前研究过,但许久不使用,忘的差不多了....Orz. --2014.7.23 18:37 正则表达式: 1.掌握正则表达式的规则 正则表达式是一种小型,高度专业化的编程语言,内嵌Python中,通过re模块实现. 正则表达式模式被编译成一系列字节码,由用C编写的匹配引擎执行. 字符匹

七日Python之路--第三天(之不安分 wxPython)

Python有好多个GUI框架,wxPython比较流行,so just do it.....   Win下各种不爽,又换Ubuntu 跟着教程做个记事本.视频地址:http://www.pythoner.cn/course/topic/wxPython-gui/ (一)wxpython的安装 Ubuntu下的安装,还是比较简单的. #使用:apt-cache search wxpython 测试一下,可以看到相关信息 [email protected]:~/Python$ apt-cache 

七日Python之路--第三天(之初试Django 2-2)

接上文.前面(1)(2)部分已经实现浏览器访问工程项目,并且能后台管理新创建的app. (二)第一个Django的app (3)教你开始写Django1.6的第1个app 前面已经完成了model(M)的设置.剩下的只有view(V)和urls(C)了.Django的视图部分,由views.py 和 templates完成. 在polls中,我们将创建4个视图: "index" 列表页 – 显示最新投票. "detail" 投票页 – 显示一个投票的问题, 以及用户

Python之路番外:PYTHON基本数据类型和小知识点

Python之路番外:PYTHON基本数据类型和小知识点 一.基础小知识点 1.如果一行代码过长,可以用续行符 \换行书写 例子 if (signal == "red") and (car == "moving"): car = "stop" else : pass 等同于 if (signal == "red") and (car == "moving"): car = "stop"

Python之路【第二篇】:Python基础

参考链接:老师 BLOG : http://www.cnblogs.com/wupeiqi/articles/4906230.html 入门拾遗 一.作用域 只要变量在内存中就能被调用!但是(函数的栈有点区别) 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. 1 if 1==1: 2 name = 'tianshuai' 3 print name 所以下面的说法是不对的: 外层变量,可以被内层变量使用 内层变量,无法被外层变量使用 二.三元运算 1 result =

Python之路【第一篇】:Python基础

本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语句 表达式for 循环 break and continue 表达式while 循环 作业需求 一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语