集合是易变(可改变)和无序聚集。集合set支持迭代,很像无值(或仅有键的)字典,用花括号表示{}。
 
1、集合的创建:
可以通过调用内建函数set()来创建,及向其传递一个迭代,该迭代的项目成为形成集合的成员。集合也可以由{...}、集合字面值和集合综合表达式语法来创建,尽管set()仍被用于创建空集合({}是空字典),并从存在的对象中构建集合。
#创建一个空集合
set()
#一个四个项目的集合:值为's','p','a','m'(接受任何迭代)

 s = set('spam')
2、差操作:
新集合包含的项目在s1,不在s2中

 s1 = {1,2,3,4}
s2 = {0,1,2,3}
p1 = s1.difference(s2)
print(p1)
>>>
{4}
3、并操作:新集合包含s1和s2中的项目,不出现重复项

 s1 = {1,2,3,4}
s2 = {0,1,2,3}
s3 = s1 | s2
print(s3)
>>>
{0, 1, 2, 3, 4}
4、交操作:新集合包含s1和s2两者共有的项目
 s1 = {1,2,3,4}
s2 = {0,1,2,3}
s3 = s1 & s2
print(s3)
>>>
{1, 2, 3}
5、添加、修改、删除操作
s.add(x) , s.remove(x) , s.discard(x) , s.pop() , s.clear()
添加一个项目;根据值删除一个项目;删除一个存在的项目;删除返回一个随机项目;删除所有项目
6、复制
s.copy
构建s的顶层(表层)复制。该功能与set(s)相同。
7、子集操作
 s1 = {1, 2, 3, 4}
s2 = {1, 2, 3}
i1 = s2.issubset(s1) #判断s2是否是s1的子集
print(i1)
>>>
True
8、超子集操作
 s1 = {1, 2, 3, 4}
s2 = {1, 2, 3}
i2 = s1.issuperset(s2) #判断s1是否包含是s2
print(i2)
>>>
True
9、对称差操作:新集合包含除了s1和s2交集外的元素
 s1 = {1, 2, 3, 4}
s2 = {0, 1, 2, 3}
s3 = s1.symmetric_difference(s2)
print(s3)
>>>
{0, 4}
10、更新:将s2的集合添加到s1中,相当于并操作
 s1 = {1, 2, 3, 4}
s2 = {0, 1, 2, 3}
s1.update(s2)
print(s1)
>>>
{0, 1, 2, 3, 4}

最新文章

  1. javaMail使用163邮箱报535 Error: authentication failed
  2. 快排java实现
  3. 移动端前端框架UI库(Frozen UI、WeUI、SUI Mobile)
  4. 《zw版·Halcon-delphi系列原创教程》 3d汽车模型自动区域分割
  5. 使用Windbg和SoS扩展调试分析.NET程序
  6. Android(java)学习笔记107-0:通过反射获得构造方法并且使用
  7. h5开发app之在线生成二维码
  8. 深入探索C++对象模型(五)
  9. SpringBoot错误求解决
  10. Unity历史
  11. mybatis逆向工程,实现join多表查询,避免多表相同字段名的陷阱
  12. HNU 2015暑期新队员训练赛2 B Combination
  13. Jquyer轮播带数字和提示文字
  14. 【转】Mysql学习---MySQL悲观锁中的排它锁
  15. 【Docker】第四篇 Docker仓库管理
  16. 在properties.xml中定义变量,在application.xml中取值问题
  17. ablout unbuntu default mysql
  18. phonegap/cordova学习建议
  19. ViewPage实现无限轮播画廊效果
  20. mariadb主从备份

热门文章

  1. vue面试题总汇
  2. Java学习网址
  3. MySQL查询小数点位数
  4. HDU-2046 骨牌铺方格【递推】
  5. MyBatis学习(三)---MyBatis和Spring整合
  6. Node.js+websocket+mongodb实现即时聊天室
  7. 原型链继承中的prototype、__proto__和constructor的关系
  8. Liunx一些命令
  9. js中常用的算法排序
  10. CSS知多少