一、set集合介绍

set集合,是一个无序的,且不重复的元素集合

定义方式使用"{}",也可以使用set(iterable)内置函数定义,但iterable参数只能是可迭代对象的对象

>>> set1 = {1,2,3,4,1,3}  #定义集合,默认会将重复的去掉
>>> set1
{1, 2, 3, 4} >>> aa = 'abcde'
>>> set2 = set(aa) #使用set函数定义集合
>>> set2
{'a', 'b', 'd', 'c', 'e'}
>>> set3 = set('python')
>>> set3
{'y', 'p', 'o', 'h', 'n', 't'} >>> set2 = set(range(5)) #如果使用数字必须使用迭代序列
>>> set2
{0, 1, 2, 3, 4}

二、集合的方法

1、s.add()添加元素

>>> set2
{1, 2, 3, 4, 5}
>>> set2.add(6)
>>> set2
{1, 2, 3, 4, 5, 6}
>>> set2.add('addr')
>>> set2
{1, 2, 3, 4, 5, 6, 'addr'}
2、s.clear()情况所有元素
>>> set2
{1, 2, 3, 4, 5, 6, 'addr'}
>>> set2.clear()
>>> set2
set()

3、s.copy()浅拷贝

>>> set1
{1, 2, 3, 4, 6, 'addr'}
>>> set3=set1.copy()
>>> set3
{1, 2, 3, 4, 6, 'addr'}

4、s.difference(b)

返回两个集合差集中s的元素

>>> set1 = {1,2,3,4}
>>> set2 = {3,4,5,6}
>>> set1.difference(set2) #用set2比较set1时,返回set1和set2交集中set1剩余的元素
{1, 2}
>>> set2.difference(set1) #理解同上,返回自身集合中对方集合没有的新集合
{5, 6}

5、s.difference_update(b)

从s集合中移除与b集合交集的元素,并更新到s集合

>>> set1 = {1,2,3,4}
>>> set2 = {3,4,5,6}
>>> set1.difference_update(set2)
>>> set1
{1, 2}
>>> set2.difference_update(set1) #没有交集元素,所以不变
>>> set2
{3, 4, 5, 6}

6、s.discard(obj)

删除指定元素,如不存在不会报错

>>> set2
{3, 4, 5, 6}
>>> set2.discard(6)
>>> set2
{3, 4, 5}
>>> set2.discard(7) #元素不存在,没有报错
>>> set2
{3, 4, 5}

7、s.intersection(b)

返回两个或多个集合的交集,并返回

>>> set1 = {1,2,3,4}
>>> set2 = {3,4,5,6}
>>> set1.intersection(set2) #返回交集值
{3, 4}
>>> set3 = {3,6,8,9}
>>> set1.intersection(set2,set3) #必须三个set都存在才返回
{3}

8、s.intersection_update(b)

根据当前s与比较b的交集值更新到s集合中

>>> set1 = {1,2,3,4,5,6}
>>> set2 = {3,4,5,7,8,9}
>>> set1.intersection_update(set2) #取交集值更新到自身set
>>> set1
{3, 4, 5}
>>> set2
{3, 4, 5, 7, 8, 9}

9、s.isdisjoint(b)

如果两个集合没有交集返回True否则返回False

>>> set1 = {1,2,3,4,5}
>>> set2 = {4,5,6,7,8}
>>> set1.isdisjoint(set2)
False
>>> set3 = {22,33}
>>> set1.isdisjoint(set3)
True

10、s.issubset(b)

s集合元素是否被b集合包含,是则返回True否则返回False

>>> s1 = {1,2}
>>> s2 = {1,2,3,4}
>>> s3 = {11,22}
>>> s1.issubset(s2)
True
>>> s1.issubset(s3)
False

11、s.issuperset(b)

判断s集合元素是否包含了所以b的集合元素,是返回True否则返回False

>>> s1 = {1,2}
>>> s2 = {1,2,3,4}
>>> s2.issuperset(s1)
True
>>> s1.issuperset(s2)
False

12、s.pop()

集合默认排序后,随机删除一个元素,并返回该元素,默认删除第一个元素

>>> s2 = {'name','age','salary','shool'}
>>> s2
{'salary', 'name', 'shool', 'age'}
>>> s2.pop()
'salary'
>>> s2.pop()
'name'
>>> s2.pop()
'shool'

13、s.remove(obj)

移除集合中的指定值,和discard一样,只是remove在值不存在时会报错。

>>> s1 = {1,2,3,4}
>>> s1.remove(2)
>>> s1
{1, 3, 4}
>>> s1.remove(5)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 5

14、s.symmetric_difference()

返回两个集合的差集

>>> s1 = {1,2,3,4}
>>> s2 = {3,4,5,6}
>>> s1.symmetric_difference(s2) #返回两个集合不交集的元素
{1, 2, 5, 6}
>>> s2.symmetric_difference(s1)
{1, 2, 5, 6}

15、s.symmetric_difference_update(b)

将两个集合不交集的元素返回给s

>>> s1 = {1,2,3,4}
>>> s2 = {3,4,5,6}
>>> s1.symmetric_difference_update(s2)
>>> s1
{1, 2, 5, 6}

16、s.union(b)

返回两个集合的并集

>>> s1 = {1,2,3,4}
>>> s2 = {3,4,5,6}
>>> s1.union(s2)
{1, 2, 3, 4, 5, 6}

17、s.update(b)

以集合b扩展s集合

>>> s1 = {1,2,3}
>>> s2 = {4,5,6}
>>> s1.update(s2)
>>> s1
{1, 2, 3, 4, 5, 6}

最新文章

  1. hibernate-mapping-3.0.dtd;hibernate-configuration-3.0.dtd;hibernate.properties所在路径
  2. 现代3D图形编程学习-关于本书(译)
  3. 报错mongoose.connection.db.collectionnames is not a function
  4. Dev 13.2 汉化教程(提供汉化cs文件下载)
  5. ReactiveCocoa基础知识内容2
  6. 一、HTML和CSS基础--网页布局--实践--导航条菜单的制作
  7. Mac OX 隐藏文件夹,文件,应用,磁盘的2种方法 hide finder folder, file, application, volume in 2 ways
  8. 线性判别分析(Linear Discriminant Analysis,LDA)
  9. 学习笔记---C++伪函数(函数对象)
  10. Symfony2中的设计模式——装饰者模式
  11. Android TextView文字描边的实现!!
  12. 8_Times_Tables
  13. 201521123045 《Java程序设计》第5周学习总结
  14. Java课程设计——计算数学表达式的程序(201521123051 谢庆圆)
  15. 轻量级网络库libevent概况
  16. spring mvc多个请求的影响 和使用全局变量
  17. jackson把json转换成LIst
  18. 谷歌浏览器安装json格式化插件
  19. 【烂笔头】adb命令篇
  20. django模板语法

热门文章

  1. 【blockly教程】Blockly编程案例
  2. 北京Uber优步司机奖励政策(2月17日)
  3. 南京Uber优步司机奖励政策(12月28日到1月3日)
  4. mysql主从集群搭建;(集群复制数据)
  5. Ubentu下命令行安装chrome浏览器
  6. coolshell里的一些c++文章
  7. Java开发工程师(Web方向) - 01.Java Web开发入门 - 第6章.蜂巢
  8. Nginx与Ribbon的区别
  9. 【isJson( jsonObj )】判断是否是JSON实例
  10. 数据库Mysql的学习(二)-数据类型和创建