集合是无序的,天生不重复的数据组合,它的作用如下:

去重,即:把一个列表变成集合,就去重了

关系测试,即:测试两组集合的交集、并集和差集等

一、集合常用方法总结

二、定义

1、语法

>>> name_1 = [1,2,3,4,7,8,7,10]

#把列表转换为集合

>>> name_1 = set(name_1)

#转换后,去重

>>> print(name_1,type(name_1))

{1, 2, 3, 4, 7, 8, 10}

三、关系测试

1、交集(intersection())

>>> name_1 = [1,2,3,4,7,8,7,10]

>>> name_2 = [1,3,5,8,10]

>>> name_1 = set(name_1)

>>> name_2 = set(name_2)

#输出结果

>>> name_1.intersection(name_2)

{8, 1, 10, 3}

2、并集(union())

>>> name_1 = [1,2,3,4,7,8,7,10]

>>> name_2 = [1,3,5,8,10]

>>> name_1 = set(name_1)

>>> name_2 = set(name_2)

#输出结果

>>> name_1.union(name_2)

{1, 2, 3, 4, 5, 7, 8, 10}

3、差集(difference())

>>> name_1 = [1,2,3,4,7,8,7,10]

>>> name_2 = [1,3,5,8,10]

>>> name_1 = set(name_1)

>>> name_2 = set(name_2)

#输出结果

>>> name_1.difference(name_2)

{2, 4, 7}

特别提示:差集取的是数值在第一个集合中,但是不在第二个集合中(在我不在你)

4、issubset()

判断一个集合是否是另一个集合的子集

>>> name_1 = [1,2,3,4,7,8,7,10]

>>> name_3 = [1,2,3,4]

>>> name_1 = set(name_1)

>>> name_3 = set(name_3)

#输出结果

>>> name_3.issubset(name_1)

True

5、issuperset()

判断一个集合是否是另一个集合的父集

>>> name_1 = [1,2,3,4,7,8,7,10]

>>> name_3 = [1,2,3,4]

>>> name_1 = set(name_1)

>>> name_3 = set(name_3)

#输出结果

>>> name_1.issuperset(name_3)

True

6、对称差集(symmetric_difference())

把两个集合没有交集的数值取出来

>>> name_1 = [1,2,3,4,7,8,7,10]

>>> name_2 = [1,3,5,8,10]

>>> name_1 = set(name_1)

>>> name_2 = set(name_2)

#输出结果

>>> name_1.symmetric_difference(name_2)

{2, 4, 5, 7}

7、isdisjoint()

判断两个集合是否有交集,没有交集,则返回True

>>> name_1 = [1,2,3,4,7,8,7,10]

>>> name_2 = [1,3,5,8,10]

>>> name_3 = [11]

>>> name_1 = set(name_1)

>>> name_2 = set(name_2)

>>> name_3 = set(name_3)

#有交集

>>> name_1.isdisjoint(name_2)

False

#无交集

>>> name_1.isdisjoint(name_3)

True

四、关系测试(特殊符号)

1、交集(&)

>>> name_1 = [1,2,3,4,7,8,7,10]

>>> name_2 = [1,3,5,8,10]

>>> name_1 = set(name_1)

>>> name_2 = set(name_2)

#结果输出

>>> name_1 & name_2

{8, 1, 10, 3}

2、并集(|)

>>> name_1 = [1,2,3,4,7,8,7,10]

>>> name_2 = [1,3,5,8,10]

>>> name_1 = set(name_1)

>>> name_2 = set(name_2)

#结果输出

>>> name_1 | name_2

{1, 2, 3, 4, 5, 7, 8, 10}

3、差集(-)

>>> name_1 = [1,2,3,4,7,8,7,10]

>>> name_2 = [1,3,5,8,10]

>>> name_1 = set(name_1)

>>> name_2 = set(name_2)

#结果输出

>>> name_1 - name_2

{2, 4, 7}

4、对称差集(^)

>>> name_1 = [1,2,3,4,7,8,7,10]

>>> name_2 = [1,3,5,8,10]

>>> name_1 = set(name_1)

>>> name_2 = set(name_2)

#输出

>>> name_1 ^ name_2

{2, 4, 5, 7}

5、是否是子集(<=)

>>> name_1 = [1,2,3,4,7,8,10]

>>> name_3 = [1,2,3,4]

>>> name_1 = set(name_1)

>>> name_3 = set(name_3)

#输出

>>> name_3 <= name_1

True

6、是否是父集(>=)

>>> name_1 = [1,2,3,4,7,8,10]

>>> name_3 = [1,2,3,4]

>>> name_1 = set(name_1)

>>> name_3 = set(name_3)

#输出

>>> name_1 >= name_3

True

五、基本操作

1、添加(add())

>>> name_2 = [1,3,5,8,10]

>>> name_2 = set(name_2)

#添加已存在,不报错

>>> name_2.add(1)

>>> name_2

{8, 1, 10, 3, 5}

#添加不存在,添加一个新的数值

>>> name_2.add(11)

>>> name_2

{1, 3, 5, 8, 10, 11}

2、添加多项(update())

>>> name_2 = [1,3,5,8,10]

>>> name_2 = set(name_2)

>>> name_2.update([12,13,14])

#输出结果

>>> name_2

{1, 3, 5, 8, 10, 12, 13, 14}

3、删除(remove(),pop(),discard())

①remove()

>>> name_2 = [1,3,5,8,10]

>>> name_2 = set(name_2)

>>> name_2

{8, 1, 10, 3, 5}

>>> name_2.remove(1)

#输出

>>> name_2

{8, 10, 3, 5}

#删除不存在的元素,会报错

>>> name_2.remove(1)

Traceback (most recent call last):

File "", line 1, in

KeyError: 1

特别提示:用remove删除时,当元素不存在,会报错

②pop()

>>> name_2 = [1,3,5,8,10]

>>> name_2 = set(name_2)

>>> name_2

{8, 1, 10, 3, 5}

#输出

>>> name_2.pop()

8

特别提示:pop是随机删除集合中的某个元素,并且打印

③discard()

>>> name_2 = [1,3,5,8,10]

>>> name_2 = set(name_2)

>>> name_2.discard(10)

#输出结果

>>> name_2

{8, 1, 3, 5}

#删除不存在元素,不报错

>>> name_2.discard(10)

特别提示:用discard删除不存在的元素,不会出现报错

4、长度(len())

>>> name_1 = [1,2,3,4,7,8,7,10]

>>> name_1 = set(name_1)

#结果输出

>>> len(name_1)

7

5、x in s

测试 x 是否是 s 的成员

>>> name_1 = [1,2,3,4,7,8,7,10]

>>> name_1 = set(name_1)

#结果输出

>>> 1 in name_1

True

6、x not in s

测试 x 是否不是 s 的成员

>>> name_1 = [1,2,3,4,7,8,7,10]

>>> name_1 = set(name_1)

#输出

>>> 12 not in name_1

True

更多关于Python集合操作方法可查看下面的相关链接

python集合输出_Python集合操作方法详解相关推荐

  1. python切片输出_Python语言之详解切片

    本篇文章主要讲述Python语言之详解切片,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入. 切片操作就是对list,元组,字符串进行截取操作有了切片操作,很多地方循环就不再需要了 ...

  2. python字典操作的方法_python 字典操作方法详解

    python 字典操作方法详解 一.总结 一句话总结: 字典就是键值对映射 ,像js和php中的键值对数组:{'name':'jamnes','age':'32'} 1.python字典的增删改查? ...

  3. python中正则表达式_Python中正则表达式详解

    正则表达式是用来简洁表达一组字符串的表达式,本文主要和大家分享Python 中正则表达式知识详解,希望能帮助到大家.操作符说明实例.表示任何单个字符 [ ]字符集,单个字符取值范围[abc]表示a或b ...

  4. python模块导入_Python模块导入详解

    定义 模块:用来从逻辑上组织Python代码(变量.函数.类.逻辑)去实现一个功能.本质就是.py结尾的Python文件. 包:用来从逻辑上组织模块的(可以放一堆模块在目录下).本质就是一个目录(必须 ...

  5. python元编程_python元编程详解(3)

    今天转载一片非常精彩的文章供大家欣赏:参考文章链接. python开发者门户一个很好的学习python的网站,大家有时间可以多看看. 下面正式开始今天的内容: 在理解元类之前,你需要先掌握Python ...

  6. python dict下标_Python库collections详解

    collections模块包含了除了内置类型list.dict.tuple之外的容器类型.本文详细介绍了Counter.defaultdict.namedtuple.OrderedDict.Chain ...

  7. python subprocess模块_python subprocess模块详解

    一.subprocess标准库 python执行shell脚本,通常会使用so模块中的几个方法,如system.spawn*.popen等.subprocess标准库的引入就是为了取代这些老的模块方法 ...

  8. python mysql实例_Python 操作MySQL详解及实例

    使用Python进行MySQL的库主要有三个,Python-MySQL(更熟悉的名字可能是MySQLdb),PyMySQL和SQLAlchemy. Python-MySQL资格最老,核心由C语言打造, ...

  9. python path模块_python pathlib模块详解

    借鉴于 pathlib 官方文档 用于自己学习和记录 使用 pathlib 模块基本可以代替 os.path 来处理路径.它采用了完全面向对象的编程方式. 其包含六个类,图片如下: 但是大体有两类: ...

最新文章

  1. 获取GridView中的某列值
  2. [转] Putty - 文件夹显示的蓝色太暗
  3. linux标准库的问题
  4. 结合批处理功能,配置SQL Server 2005,使其打开远程连接功能
  5. xStream完美转换XML、JSON
  6. HDLBits答案(20)_Verilog有限状态机(7)
  7. WeihanLi.Npoi 1.10.0 更新日志
  8. 解决uni-app开发中iphoneX下背景不能全屏铺满的问题
  9. IDEA java 中文乱码解决方法
  10. java下载图片到本地
  11. html炫彩粒子的代码,HTML5 Canvas炫彩粒子特效生成器
  12. 选择FPGA,认识“她”。
  13. 谷粒学院day08——课程章节与小节的实现
  14. 【规划】Motion Planning Approaches 路径规划方法汇总
  15. ubuntu18.04中文输入法(by搜狗)
  16. 重载java_方法重载
  17. Linux驱动 | 加载.ko驱动模块的两种方法(insmod与modprobe)
  18. 微服务概念及SpringCloud五大神兽介绍
  19. 【UEFI基础】BIOS学习路线图
  20. mysql 阿里插件_MySQL插件调用

热门文章

  1. javascript 理解对象--- 定义多个属性和读取属性的特性
  2. 一分钟了解阿里云产品:高速通道
  3. Listview 的应用 Day04 2014-0605
  4. 用XYNTService把Python程序变为服务
  5. linux里shell中的test代表的意义
  6. 关于HTTP及XMLHTTP状态代码一览
  7. 主仆模式的一点小理解
  8. H5实现俄罗斯方块(一)
  9. R 语言在数据处理上的禀赋之——独特的数据类型
  10. linux虚拟机网络配制方法及遇到问题的解决方法