set built-in function
集合类型
集合对象是一组无序排列的可哈希的值,集合可以作为字典的键。因为集合是无序的,不可以为集合创建索引或执行切片操作,也没有键可以用来获取元素的值。
集合有两种不同的类型,可变集合和不可变集合。可变集合不是可哈希的值
集合类型中元素不可重复
创建集合类型的方法只有一个,就是集合的工厂方法set()和frozenste(),括号内的参数必须是可迭代的对象,例如一个文件或着一个字典
set('book')
>>>['b','k','o','o']
当进行集合类型的交集并集差集时,所产生的结果类型和左操作数的类型相同,例如:
s = set('continue')
t = frozenset('break')
v = s | t
print(v)
>>>{'o', 'u', 't', 'n', 'e', 'k', 'c', 'i', 'b', 'r', 'a'}
print(type(v))
>>><class 'set'> # 产生的类型和 s 的类型相同
dir(set):
['__and__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__iand__', '__init__', '__ior__', '__isub__', '__iter__', '__ixor__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update']
1.add(obj) 在集合中添加对象obj
s = set('book')
s.add('shop')
print(s)
>>>{'o', 'k', 'shop', 'b'}
2.clear 删除集合中的所有元素
s = set('book')
s.clear()
print(s)
>>>set()
3.s.copy 返回一个新集合,它是集合s的浅复制
4.s.difference(t) 返回一个新集合,该集合是s的成员,但不是t的成员,相当于s - t(差分操作)
s = set('book')
t = set('shop')
v = s.difference(t)
print(v)
>>>{'b', 'k'}
5.s.difference_update(t) s中的成员是属于s但不包含在t中的元素,它与difference的区别在于difference会返回一个新集合,而它不会
s = set('book')
t = set('shop')
s.difference_update(t)
print(s)
>>>{'b', 'k'}
6.s.discard(obj) 如果obj是集合s中的元素。从集合s中删除对象obj
s = set('book')
s.discard('o')
print(s)
>>>{'k', 'b'}
7.s.intersection(t) 返回一个新集合,是s和t的交集,等价操作符 s & t
s = set('book')
t = set('shop')
v = s.intersection(t)
print(v)
>>>{'o'}
8.s.intersection_update(t) 和上面类似,只是不返回新集合
9.s.isdisjoint(t) 如果集合s和t没用交集,返回True,否则返回False
s = set('book')
t = set('shp')
v = s.isdisjoint(t)
print(v)
>>>True
10.s.issubset(t) 如果s是t的子集,返回True,否则返回False
11.s.issuperset(t) 如果t是s的超集,返回True,否则返回False
s = set('bookshop')
t = set('book')
v = s.issuperset(t)
print(v)
>>>True
12.pop() 删除集合中的任意一个对象,并返回它
s = set('bookshop')
v = s.pop()
print(v)
>>>p # 不唯一,可以是s中任意一个对象
13.s.remove(obj) 删除对象obj,如果集合里面没有obj,则有keyerror错误
14.s.symmetric_difference(t) 返回以个新集合,该集合是s或t的成员,但不是s和t共有的成员。对称差分操作,等价操作符是s ^ t
s = set('bookshop')
t = set('break')
v = s.symmetric_difference(t)
print(v)
>>>{'o', 'r', 'p', 'a', 'e', 'h', 's'}
15.s.symmetric_difference_update(t) 和上面类似,只是不返回新集合
16.union 并集,等价操作符是s | t
s = set('bookshop')
t = set('break')
v = s.union(t)
print(v)
>>>{'s', 'a', 'b', 'r', 'p', 'e', 'k', 'o', 'h'}
17.s.update(t) 用t中的元素修改s
s = set('bookshop')
t = set('break')
s.update(t)
print(s)
>>>{'p', 'e', 'r', 'b', 'o', 'k', 'h', 'a', 's'}
以上
set built-in function的更多相关文章
- Know How To Use ID_NULL Function To Search An Object In Oracle Forms
ID_NULL built in function is used to determine that an object type variable is null or not null in O ...
- Python学习日志(二)
在网易云课堂看到小甲鱼的python视频,想起以前看就是看他的视频学C的虽然后来不了了之都怪我自己啦,于是决定跟着这个视频来学python啦! IDLE IDLE其实是一个python shell , ...
- Python2.x和3.x主要差异总结
本文部分转载自http://my.oschina.net/chihz/blog/123437,部分来自自身修改 开始使用Python之后就到处宣扬Python如何如何好,宣传工作的一大重要诀窍就是做对 ...
- jquery截图插件的使用
首先感谢http://www.htmleaf.com/Demo/201504211717.html这款插件. 使用之初,对于插件的结构很是糊涂,首先文件的核心是cropper.js,其次才是mian. ...
- (转) Deep Reinforcement Learning: Playing a Racing Game
Byte Tank Posts Archive Deep Reinforcement Learning: Playing a Racing Game OCT 6TH, 2016 Agent playi ...
- 译:在C#中使用LINQ To SQL
译文出处:http://www.codeproject.com/Tips/871938/LINQ-To-SQL-Using-Csharp 今天在这个话题中,我给大家分享一个在c#编程中非常有趣和十分有 ...
- 图书管理之HTML5压缩旋转裁剪图片总结
整体思路 : 在移动端压缩图片并且上传主要用到filereader.canvas 以及 formdata 这三个h5的api.逻辑并不难.整个过程就是: (1)用户使用input file上传图片的 ...
- Part 4 Identity Column in SQL Server
Identity Column in SQL Server If a column is marked as an identity column, then the values for this ...
- 图片剪裁上传插件 - cropper
图片剪裁上传插件 - cropper <style> .photo-container{float: left;width: 300px;height: 300px;} .photo-co ...
- PouchDB 基础
GUIDES http://pouchdb.com/guides/ 1.建立couchDB环境 下载并安装CouchDB: https://couchdb.apache.org/#download 测 ...
随机推荐
- JSP表单提交中文乱码
简要笔记:由于jsp默认表单提交编码方式是:ISO-8859-1,而我们需要的是utf-8或者是gbk码,故需要转化. 具体方法是:在表单处理文件中,将获取到的变量进行转换. String userN ...
- MongoDB_java连接MongoDB
java程序连接单机版的mongodb: 参考:http://www.runoob.com/mongodb/mongodb-java.html https://www.yiibai.com/mongo ...
- 标准C程序设计七---16
Linux应用 编程深入 语言编程 标准C程序设计七---经典C11程序设计 以下内容为阅读: <标准C程序设计>(第7版) 作者 ...
- iOS APP 架构漫谈[转]
Mark 一下 很不错的文章 最近看了一些有关server的东西,一些很简单的东西,不外乎是一些文档规范,另外结合最近看的wwdc的一些video,觉得对软件架构(software arch ...
- AC日记——L国的战斗之间谍 洛谷 P1916
题目背景 L国即将与I国发动战争!! 题目描述 俗话说的好:“知己知彼,百战不殆”.L国的指挥官想派出间谍前往I国,于是,选人工作就落到了你身上. 你现在有N个人选,每个人都有这样一些数据:A(能得到 ...
- Java常用几种加密算法
对称加密算法是应用较早的加密算法,技术成熟.在对称加密算法中,数据发信方将明文(原始数据)和加密密钥(mi yue)一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去.收信方收到密文后,若想解 ...
- LibieOJ 6165 一道水题 (线性筛)
题目链接 LOJ6165 题目意思其实就是求LCM(1, 2, 3, ..., n) 直接用线性筛求出1到1e8之间的所有质数 然后对于每个质数p,他对答案的贡献为$p^{i}$ 其中$p^{i}$小 ...
- FastDFS介绍和搭建(转载)
FastDFS介绍和配置过程--http://blog.51cto.com/ylw6006/948729 FastDFS的五篇文章--http://www.cnblogs.com/smartycity ...
- ClassLoader Java中类加载出现在哪个阶段,编译期和运行期? 类加载和类装载是一样的吗
1.ClassLoader Java中类加载出现在哪个阶段,编译期和运行期? 类加载和类装载是一样的吗? :当然是运行期间啊,我自己有个理解误区,改正后如下:编译期间编译器是不去加载类的,只负责编译而 ...
- Android判断屏幕锁屏的方法总结
由于做一个项目,需要判断屏幕是否锁屏,发现网上方法很多,但是比较杂,现在进行总结一下: 总共有两类方法: 一.代码直接判定 二.接收广播 现在先说第一类方法(代码直接判定): 1.通过PowerMan ...