Python_Day_04 set方法总结
set(集合)
- 直接创建一个空集合
set_empty = set()
print(set_empty) # set()
- 根据参数创建
# 根据参数
set_argument = set(42,'','ry')
print(set_argument) # 这样会报错,因为set只允许有一个参数
- 根据列表来创建
set_list = set([11,11,'','','ee'])
print(set_list) # {11, 'ee', '45', '11'} 会自动删除重复对象
- 根据元组来创建
set_tuple = set((11,11,'','','ee',))
print(set_tuple) # {'ee', 11, '45', '11'} 同样会自动删除重复对象
- 根据字典来创建
set_dict = set({'k1':'v1','k2':2,'k3':'v3','k1':'v4'})
print(set_dict) # {'k3', 'k1', 'k2'} 只会存储key值,且不会重复
- 字符串创建
set_str = set('Hello Python')
print(set_str) # {'y', 'o', 'n', ' ', 'P', 't', 'h', 'H', 'e', 'l'} 同样会删除字符串中重复的字符
- add(self, *args, **kwargs) 添加一个新的元素到集合中,如果添加的元素在集合中已经存在就不会有任何操作
set_init = set([11,11,'','','ee'])
set_init.add('Hello')
print(set_init) # {'Hello', 11, 'ee', '11', '45'} set_init_str = set('Python')
set_init_str.add('Hello,World')
print(set_init_str) # {'Hello,World', 'o', 'P', 't', 'n', 'y', 'h'}
- clear(self, *args, **kwargs) 清除集合中元素,可以传参数
set_init_clear = set([11,11,'','','ee'])
set_init_clear.clear()
print(set_init_clear) # set()
- copy(self, *args, **kwargs) 浅拷贝,会返回一个新的集合
set_init_copy = set([11,11,'','','ee'])
set_receive_copy = set_init_copy.copy()
print(set_receive_copy) # {'ee', 11, '45', '11'}
- difference(self, *args, **kwargs) 比较两个集合类的不同,返回的是被主动比较的那个集合与比较集合的交集之外的子集(数学上叫啥给忘了)
set_init_dif1 = set([11,22,33,44])
set_init_dif2 = set([33,44,55,66])
set_init_rece1 = set_init_dif1.difference(set_init_dif2)
print(set_init_rece1) # {11, 22}
set_init_rece2 = set_init_dif2.difference(set_init_dif1)
print(set_init_rece2) # {66, 55}
- difference_update(self, *args, **kwargs) 删除两个集合的交际
set_init_upd1 = set([11,22,33,44])
set_init_upd2 = set([33,44,55,66])
set_init_upd1.difference_update(set_init_upd2)
print(set_init_upd1) # {22, 11} set_init_upd3 = set([11,22,33,44])
set_init_upd4 = set([33,44,55,66])
set_init_upd4.difference_update(set_init_upd3)
print(set_init_upd4) # {66, 55}
- discard(self, *args, **kwargs) 删除集合中存在的元素,如果不存在就什么也不做
set_init_dis = set([11,22,33,44,55])
set_init_dis.discard(11)
print(set_init_dis) # {33, 44, 22, 55} 只能删除一个
- intersection(self, *args, **kwargs) 返回两个集合中的交集
set_init_inter1 = set([11,22,33,44])
set_init_inter2 = set([33,44,55,66])
set_rece_inter1 = set_init_inter1.intersection(set_init_inter2)
print(set_rece_inter1) # {33, 44}
- intersection_update(self, *args, **kwargs) 取出两个集合的交集,更新一个集合
set_inter_upd1 = set([111,222,333,444])
set_inter_upd2 = set([333,444,55,66])
set_inter_upd1.intersection_update(set_inter_upd2)
print(set_inter_upd1) # {444, 333}
- isdisjoint(self, *args, **kwargs) 判断两个集合是否有交集,如果有就返回False,如果没有就返回Ture
set_isdis1 = set([111,222,333,444])
set_isdis2 = set([222,333])
set_receive_isdis1 = set_isdis1.isdisjoint(set_isdis2)
print(set_receive_isdis1) # False 说明有交集
- issubset(self, *args, **kwargs) 判断A集合是否是B集合的子集
set_issub1 = set([111,222,333,444])
set_issub2 = set([222,333])
set_receive_issub1 = set_issub1.issubset(set_issub2)
print(set_receive_issub1) # False 说明set_issub1不是set_issub2的子集
set_receive_issub2 = set_issub2.issubset(set_issub1)
print(set_receive_issub2) # True 说明set_issub2是set_issub1的子集
- issuperset(self, *args, **kwargs) 判断A集合是否是B集合的父类,就是A集合是否包含B集合.结果跟 issubset(self, *args, **kwargs) 相反
- pop(self, *args, **kwargs) 移除元素,同时可以定义一个变量来接收移除的元素,如果集合为空会报错
set_pop = set([111,222,333,444,232])
set_receive_pop = set_pop.pop()
print(set_pop) # {444, 333, 222, 111}
print(set_receive_pop) #
- remove(self, *args, **kwargs) 删除元素
set_remove = set([111,222,333,444,232])
set_remove.remove(111)
print(set_remove) # {232, 444, 333, 222}
- symmetric_difference(self, *args, **kwargs) 取出两个差,更新到一个集合中,如果同时删除A,B两集合中相同元素删除.
set_sym1 = set([1,2,3,4,5])
set_sym2 = set([2,3,4,5,6,])
set_receive_sym1 = set_sym1.symmetric_difference(set_sym2)
print(set_receive_sym1) # {1, 6} set_sym3 = set([1,2,3,4,5])
set_sym4 = set([6,])
set_receive_sym2 = set_sym3.symmetric_difference(set_sym4)
print(set_receive_sym2) # {1, 2, 3, 4, 5, 6}
- symmetric_difference_update(self, *args, **kwargs) 将B集合中有,而A集合中没有的更新到A集合中
set_sym_up1 = set([1,2,3,4,5])
set_sym_up2 = set([2,3,4,5,6,])
set_sym_up1.symmetric_difference_update(set_sym_up2)
print(set_sym_up1) # {1, 6} set_sym_up3 = set([1,2,3,4,5])
set_sym_up4 = set([6,])
set_sym_up3.symmetric_difference_update(set_sym_up4)
print(set_sym_up3) # {1, 2, 3, 4, 5, 6}
- union(self, *args, **kwargs) 返回A集合和B集合的并集
set_un1= set([11,22,33,44])
set_un2 = set([22,33,44,55])
set_rec_un = set_un1.union(set_un2)
print(set_rec_un) # {33, 11, 44, 22, 55}
- update(self, *args, **kwargs) A和B的并集,并返回A
set_un_up1 = set([111,222,333,444])
set_un_up2 = set([222,333,444,555])
set_un_up1.update(set_un_up2)
print(set_un_up1) # {555, 333, 111, 444, 222}
Python_Day_04 set方法总结的更多相关文章
- javaSE27天复习总结
JAVA学习总结 2 第一天 2 1:计算机概述(了解) 2 (1)计算机 2 (2)计算机硬件 2 (3)计算机软件 2 (4)软件开发(理解) 2 (5) ...
- mapreduce多文件输出的两方法
mapreduce多文件输出的两方法 package duogemap; import java.io.IOException; import org.apache.hadoop.conf ...
- 【.net 深呼吸】细说CodeDom(6):方法参数
本文老周就给大伙伴们介绍一下方法参数代码的生成. 在开始之前,先补充一下上一篇烂文的内容.在上一篇文章中,老周检讨了 MemberAttributes 枚举的用法,老周此前误以为该枚举不能进行按位操作 ...
- IE6、7下html标签间存在空白符,导致渲染后占用多余空白位置的原因及解决方法
直接上图:原因:该div包含的内容是靠后台进行print操作,输出的.如果没有输出任何内容,浏览器会默认给该空白区域添加空白符.在IE6.7下,浏览器解析渲染时,会认为空白符也是占位置的,默认其具有字 ...
- 多线程爬坑之路-Thread和Runable源码解析之基本方法的运用实例
前面的文章:多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类) 多线程爬坑之路-Thread和Runable源码解析 前面 ...
- [C#] C# 基础回顾 - 匿名方法
C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...
- ArcGIS 10.0紧凑型切片读写方法
首先介绍一下ArcGIS10.0的缓存机制: 切片方案 切片方案包括缓存的比例级别.切片尺寸和切片原点.这些属性定义缓存边界的存在位置,在某些客户端中叠加缓存时匹配这些属性十分重要.图像格式和抗锯齿等 ...
- [BOT] 一种android中实现“圆角矩形”的方法
内容简介 文章介绍ImageView(方法也可以应用到其它View)圆角矩形(包括圆形)的一种实现方式,四个角可以分别指定为圆角.思路是利用"Xfermode + Path"来进行 ...
- JS 判断数据类型的三种方法
说到数据类型,我们先理一下JavaScript中常见的几种数据类型: 基本类型:string,number,boolean 特殊类型:undefined,null 引用类型:Object,Functi ...
随机推荐
- 有了lisk,为什么我们还要做一个Asch?
0 前言 首先要声明一点,我们和我们的一些朋友都是lisk的投资人和支持者,我们也相信lisk会成功. 事实上,lisk已经成功了一半,目前在区块链领域融资金额排行第二,仅次于以太坊. 那为什么我们还 ...
- 使用jQuery Uploadify在ASP.NET 上传附件
Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示.Uploadify官方网址:http://www.uploadify.com/,在MVC中使用的方法可以参考 jQuer ...
- 关于EF6的记录Sql语句 与 EntityFramework.Extend 的诟病
1.关于EF6的记录Sql语句,一个老生长谈的问题. 他生成的sql语句实在是烂,大家都这样说 2.EF6 更新删除不方便,没有批量操作.所以,有人出了EF6.Extend 大家用起来也很爽 基于以 ...
- Modern OpenGL用Shader拾取VBO内单一图元的思路和实现
Modern OpenGL用Shader拾取VBO内单一图元的思路和实现 什么意思? 拾取 最简单的理解拾取的方式大概是到(http://www.yakergong.net/nehe/course/t ...
- C#+OpenGL+FreeType显示3D文字(3) - 用PointSprite绘制文字
C#+OpenGL+FreeType显示3D文字(3) - 用PointSprite绘制文字 上一篇实现了把文字绘制到OpenGL窗口,但实质上只是把含有文字的贴图贴到矩形模型上.本篇我们介绍用Poi ...
- [备忘]Redis运行出现Client sent AUTH, but no password is set
原因:程序提供了密码,但是redis.conf中并没有设置密码. 附加问题:如果redis.conf中设置了密码,有可能会导致服务无法启动,报5013错误.可能是访问权限的问题.
- ABP(现代ASP.NET样板开发框架)主题线下交流会(上海)开始报名了!
点这里进入ABP系列文章总目录 ABP主题线下交流会(上海)开始报名了 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称.它是采用最佳实践和流行技术 ...
- Andrew Ng机器学习公开课笔记 -- 学习理论
网易公开课,第9,10课 notes,http://cs229.stanford.edu/notes/cs229-notes4.pdf 这章要讨论的问题是,如何去评价和选择学习算法 Bias/va ...
- sublime text 下的Markdown写作
sublime text 2(3)下的Markdown写作 什么是 Markdown wiki Markdown 是一种方便记忆.书写的纯文本标记语言,用户可以使用这些标记符号以最小的输入代价生成极富 ...
- JAVA集合
为了保存数量不确定的数据或者提供映射关系的数据,Java提供了集合类,也称作集合类,Collection和Map分别为两个根接口.两个接口体系的继承系如下图 (图片来源于网络) Collection接 ...