集合类型

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

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

集合类型中元素不可重复

创建集合类型的方法只有一个,就是集合的工厂方法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'}

以上

转载于:https://www.cnblogs.com/learnC/p/5963162.html

set built-in function相关推荐

  1. 通过 DLPack 构建跨框架深度学习编译器

    通过 DLPack 构建跨框架深度学习编译器 深度学习框架,如Tensorflow, PyTorch, and ApacheMxNet,快速原型化和部署深度学习模型提供了强大的工具箱.不幸的是,易用性 ...

  2. DLPack构建跨框架的深度学习编译器

    DLPack构建跨框架的深度学习编译器 Tensorflow,PyTorch和ApacheMxNet等深度学习框架提供了一个功能强大的工具包,可用于快速进行原型设计和部署深度学习模型.易用性通常是以碎 ...

  3. react 时刻表插件_React“啊哈”的时刻

    react 时刻表插件 As a teacher, one of my main goals is to maximize people's "aha" moments. 作为一名 ...

  4. 将TensorFlow模型变为pb——官方本身提供API,直接调用即可

    TensorFlow: How to freeze a model and serve it with a python API 参考:https://blog.metaflow.fr/tensorf ...

  5. 吴恩达深度学习课程deeplearning.ai课程作业:Class 4 Week 2 Keras - Tutorial - Happy House

    吴恩达deeplearning.ai课程作业,自己写的答案. 补充说明: 1. 评论中总有人问为什么直接复制这些notebook运行不了?请不要直接复制粘贴,不可能运行通过的,这个只是notebook ...

  6. python-argparse使用

    python-argparse使用 官方文档:https://docs.python.org/zh-cn/3.7/library/argparse.html?highlight=argparse#mo ...

  7. 周期性取count请求是如何在前台setup的 - Tile count

    setTimeout Created by Jerry Wang, last modified on Oct 25, 2014 在Chrome network tab里能够观测到每隔一个固定的时间间隔 ...

  8. 频偏纠正matlab实现,Matlab关于OFDM同步定时估计和频偏估计的算法

    各位高手你们好,在下有理了.我最近在写有关ofdm的同步的问题,主要是SC算法, 我已经把M(d)的图像仿真出来了,也找到了M(d)取最大时的那个点,还有小数频偏也算算出来了,但是我不会算'定时估计均 ...

  9. linux中错误总结归纳

    1.使用gcc编译C文件,C文件在for循环语句中出现变量定义 编译器提示错误:"for"loop initial declarations are only allowed in ...

  10. arkit技术介绍_面向移动AR的触觉技术:如何以“触摸”感增强ARKit应用

    arkit技术介绍 by Neil Mathew 通过尼尔·马修(Neil Mathew) 面向移动AR的触觉技术:如何以"触摸"感增强ARKit应用 (Haptics for m ...

最新文章

  1. 来自Facebook AI的多任务多模态的统一Transformer:向更通用的智能迈出了一步
  2. C++内存管理变革(6):通用型垃圾回收器 - ScopeAlloc
  3. css浮动+应用(瀑布流效果的实现)
  4. oracle 代码 字段映射,将ORACLE TIMESTAMP(9)字段映射到java.util.Date
  5. oracle连接本地数据库
  6. Spring Tool Suite 4安装Lombok
  7. 30岁从零学计算机,30岁从零学阅读方法来得及吗?
  8. (原创)如何解决matlab乱码问题
  9. html 调用c#dll中的控件,C#实现反射调用动态加载的DLL文件中的方法和在窗体中加载DLL文件的用户控件...
  10. 海量数据库解决方案2011031001
  11. python简单爬虫代码
  12. 5101是多大的电阻_电阻标准阻值换算表
  13. 伊对和连信交友相亲聊天平台靠谱吗?
  14. 澳洲国立与渥太华计算机科学,山东小伙斩获渥太华电子工程专业及多伦多计算机科学专业录取!...
  15. 电商物流快递意外延误创意海报设计PSD格式,用心良苦
  16. etcd之日志和快照管理
  17. PDM转换成Word文档或者XML文档
  18. Linux高性能服务器编程——书籍阅读笔记
  19. 【问题解决方法】java词云库kumo色差
  20. 图像处理——人脸黑头检测+用户界面

热门文章

  1. html img 坐标,Html img 标签
  2. mybitys 动态sql 注释_mybatis注解动态sql详解
  3. 开源矿工和轻松矿工接入ssl
  4. 从一百篇文章中总结出的需求分析四步法
  5. 九大排序算法-C语言实现及详解
  6. All is about C!
  7. python format用法
  8. 变压器符号_3D动画解析油浸式和干式变压器,看完让你秒懂
  9. TIBCO EMS MESSAGE
  10. Hibernate依赖包简单介绍