集合类型

集合对象是一组无序排列的可哈希的值,集合可以作为字典的键。因为集合是无序的,不可以为集合创建索引或执行切片操作,也没有键可以用来获取元素的值。

集合有两种不同的类型,可变集合和不可变集合。可变集合不是可哈希的值

集合类型中元素不可重复

创建集合类型的方法只有一个,就是集合的工厂方法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的更多相关文章

  1. 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 ...

  2. Python学习日志(二)

    在网易云课堂看到小甲鱼的python视频,想起以前看就是看他的视频学C的虽然后来不了了之都怪我自己啦,于是决定跟着这个视频来学python啦! IDLE IDLE其实是一个python shell , ...

  3. Python2.x和3.x主要差异总结

    本文部分转载自http://my.oschina.net/chihz/blog/123437,部分来自自身修改 开始使用Python之后就到处宣扬Python如何如何好,宣传工作的一大重要诀窍就是做对 ...

  4. jquery截图插件的使用

    首先感谢http://www.htmleaf.com/Demo/201504211717.html这款插件. 使用之初,对于插件的结构很是糊涂,首先文件的核心是cropper.js,其次才是mian. ...

  5. (转) Deep Reinforcement Learning: Playing a Racing Game

    Byte Tank Posts Archive Deep Reinforcement Learning: Playing a Racing Game OCT 6TH, 2016 Agent playi ...

  6. 译:在C#中使用LINQ To SQL

    译文出处:http://www.codeproject.com/Tips/871938/LINQ-To-SQL-Using-Csharp 今天在这个话题中,我给大家分享一个在c#编程中非常有趣和十分有 ...

  7. 图书管理之HTML5压缩旋转裁剪图片总结

    整体思路  : 在移动端压缩图片并且上传主要用到filereader.canvas 以及 formdata 这三个h5的api.逻辑并不难.整个过程就是: (1)用户使用input file上传图片的 ...

  8. 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 ...

  9. 图片剪裁上传插件 - cropper

    图片剪裁上传插件 - cropper <style> .photo-container{float: left;width: 300px;height: 300px;} .photo-co ...

  10. PouchDB 基础

    GUIDES http://pouchdb.com/guides/ 1.建立couchDB环境 下载并安装CouchDB: https://couchdb.apache.org/#download 测 ...

随机推荐

  1. uva 10140 素数筛选(两次)

    #include<iostream> #include<cstring> #include<cmath> #include<cstdio> using ...

  2. 【HDOJ5980】Find Small A(签到)

    题意:不知道 思路:队友写的 #include <stdio.h> #include <vector> #include <algorithm> #include ...

  3. android apk程序升级

    1 .设置apk版本号 Androidmanifest.xml <manifest xmlns:android="http://schemas.android.com/apk/res/ ...

  4. Spring 详解(二)------- AOP关键概念以及两种实现方式

    目录 1. AOP 关键词 2. AOP 的作用 3. AOP 的通知类型 4. 基于 xml 的配置方式 5. 基于注解的配置方式 6. 切面的优先级 7. 重用切点表达式 8. 两种方式的比较(摘 ...

  5. Go -- 性能优化

    今日头条使用 Go 语言构建了大规模的微服务架构,本文结合 Go 语言特性着重讲解了并发,超时控制,性能等在构建微服务中的实践. 今日头条当前后端服务超过80%的流量是跑在 Go 构建的服务上.微服务 ...

  6. Centos7配置Grafana对接OpenLDAP

    在grafana的主配置文件grafana.ini中开启LDAP认证 注意:grafana有两个地方需要指定(/etc/grafana/grafana.ini和/usr/share/grafana/c ...

  7. es删除文档或者删除索引

    es删除文档或者删除索引 学习了:https://www.imooc.com/video/15771 删除文档: DELETE http://127.0.0.1:9200/people/man/1 删 ...

  8. 生活娱乐 ATM机键盘余温泄露密码

    安全系统存漏洞 ATM机键盘余温或泄露密码 ATM机会泄露你的银行卡密码? 据美国<大众科学>网站8月30日报道,你的手指在ATM机上留下的余温能让尾随你而来的黑客准确获知你的密码. 加利 ...

  9. 第一个MapReduce程序——WordCount

    通常我们在学习一门语言的时候,写的第一个程序就是Hello World.而在学习Hadoop时,我们要写的第一个程序就是词频统计WordCount程序. 一.MapReduce简介 1.1 MapRe ...

  10. MYSQL时间戳的处理

    date为需要处理的参数(该参数是Unix 时间戳),可以是字段名,也可以直接是Unix 时间戳字符串 后面的 '%Y%m%d' 主要是将返回值格式化 例如: mysql>SELECT FROM ...