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

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

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

一、集合常用方法总结

二、定义

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集合操作方法详解

本文地址: http://www.cppcns.com/jiaoben/python/299941.html

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

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

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

  2. python菜单怎么做_Python 城市菜单详解(超详解)

    print("--------城市查询系统---------") print("--------按数值进行查询--------") menu={"内蒙 ...

  3. python指定变量类型_Python 变量类型详解

    变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的数据类型,这些变量可以存储整 ...

  4. python中递归函数写法_python递归函数用法详解

    上期我们介绍了函数式编程,这期内容就是关于递归的函数内容,本期还是按照老规矩,给大家进行核心整理,内容通俗易懂,搭配实际应用,以供大家理解. 关于递归: 百度解释:是指函数/过程/子程序在运行过程序中 ...

  5. python怎么看内置模块_Python的内置模块详解

    一.什么是模块 模块就是封装了一些列功能的py文件,我们使用的时候直接导入这个文件,通过传入参数的方式使用其他文件的功能函数 二.模块有哪些 内置模块 自定义模块 第三方模块 三.如何导入模块 导入模 ...

  6. python文件输入符_python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)...

    一.变量和表达式 >>> 1 + 1 2 >>> print 'hello world' hello world >>> x = 1 >&g ...

  7. python queue get 方法_Python Queue模块详解

    Python3.5中,队列是线程间最常用的交换数据的形式.Queue模块是提供队列操作的模块,虽然简单易用,但是不小心的话,还是会出现一些意外. 创建一个"队列"对象 import ...

  8. python re模块下载_python re模块详解

    1.正则表达式基础 1.1正则表达式概念 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十 ...

  9. python网络编程项目_python网络编程详解

    最近在看<UNIX网络编程 卷1>和<FREEBSD操作系统设计与实现>这两本书,我重点关注了TCP协议相关的内容,结合自己后台开发的经验,写下这篇文章,一方面是为了帮助有需要 ...

最新文章

  1. lenovo电脑_联想推出了其最新的ThinkBook笔记本电脑产品ThinkBookPlus
  2. 基于Confluent.Kafka实现的Kafka客户端操作类使用详解
  3. 1使用帝国cms开发微信小程序之开发前的约定
  4. 积分上下限无穷_数学方法的思考和存在无穷多个孪生素数证明的思路
  5. edge无法上网dns_如何在Microsoft Edge中通过HTTPS启用DNS
  6. Java内存配太大导致fullgc_记一次因为短命大对象导致fullGC的问题
  7. CPU取指到发出控制、微程序控制原理详细过程
  8. 学python要多久-python入门要学多久
  9. 《数字图像处理 第三版》(冈萨雷斯)——第十章 图像分割
  10. 如何在linux系统开发gd32,对于GD32VF103一些想法
  11. 杰理之ANC降噪基本原理【篇】
  12. 柴静十年看见了什么——一个央视记者的心灵史
  13. 噜噜噜啦啦啦啦啦啾啾啾~
  14. 适合前端Vue开发童鞋的跨平台Weex
  15. Revo Uninstaller Pro v3.1.2 测试和评测:
  16. excel替换tab、换行符特殊字符
  17. 【Java基础】语法基础
  18. 微信小程序——1、自定义顶部渐变色2、封装好的自定义顶部栏(父组件获取子组件的点击事件)
  19. 手把手教你架设电影服务器
  20. 使能树莓派无线上网和SSH登录

热门文章

  1. SAP Spartacus org unit list和unit detail的分屏显示原理
  2. 如何处理Angular依赖注入的错误消息: NullInjectorError No provider for EffectsRootModule!
  3. 微信开发系列之十 - 在SAP C4C接收微信发送过来的服务请求回应
  4. ABAP应用服务器的HTTP响应状态码(Status Code)
  5. 将S/4HANA的自定义BO功能以Web Service的方式暴露给第三方
  6. 一个最简单的SAP UI5应用部署到SAP云平台CloudFoundry环境后,自动生成了哪些资源
  7. 阮一峰react demo代码研究的学习笔记 - demo7 debug - create ref element
  8. 处理ABAP Netweaver gateway service使用过程中遇到的400 error - invalid key predicate type for guid
  9. UI5 metadata usage in the runtime
  10. intx update task - IB_IBINTX_UPDATE