一、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}

【Python】python之set的更多相关文章

  1. python --- Python中的callable 函数

    python --- Python中的callable 函数 转自: http://archive.cnblogs.com/a/1798319/ Python中的callable 函数 callabl ...

  2. Micro Python - Python for microcontrollers

    Micro Python - Python for microcontrollers MicroPython

  3. 从Scratch到Python——python turtle 一种比pygame更加简洁的实现

    从Scratch到Python--python turtle 一种比pygame更加简洁的实现 现在很多学校都开设了Scratch课程,学生可以利用Scratch创作丰富的作品,然而Scratch之后 ...

  4. 从Scratch到Python——Python生成二维码

    # Python利用pyqrcode模块生成二维码 import pyqrcode import sys number = pyqrcode.create('从Scratch到Python--Pyth ...

  5. [Python]Python 使用 for 循环的小例子

    [Python]Python 使用 for 循环的小例子: In [7]: for i in range(5): ...: print "xxxx" ...: print &quo ...

  6. [python]python 遍历一个list 的小例子:

    [python]python 遍历一个list 的小例子: mlist=["aaa","bbb","ccc"]for ss in enume ...

  7. [Python]Python日期格式和字符串格式相互转换

    由字符串格式转化为日期格式的函数为: datetime.datetime.strptime() 由日期格式转化为字符串格式的函数为: datetime.datetime.strftime() # en ...

  8. [python]Python 字典(Dictionary) update()方法

    update() 函数把字典dict2的键/值对更新到dict里.如果后面的键有重复的会覆盖前面的语法dict.update(dict2) dict = {'Name': 'Zara', 'Age': ...

  9. [python]python try异常处理机制

    #python的try语句有两种风格 #一:种是处理异常(try/except/else) #二:种是无论是否发生异常都将执行最后的代码(try/finally) try/except/else风格 ...

  10. [Python] Python中的一些特殊函数

    1. 过滤函数filter 定义:filter 函数的功能相当于过滤器.调用一个布尔函数bool_func来迭代遍历每个列表中的元素:返回一个使bool_func返回值为true的元素的序列. a=[ ...

随机推荐

  1. Java设计模式(3)——创建型模式之抽象工厂模式(Abstract Factory)

    一.概述 抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式.抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体情况下,创建多个产品族中的产品对象. UML图: 其他的过多概念不再 ...

  2. [Python3.X]python 实现斐波那契数列

    斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一 ...

  3. Hough变换-理解篇

    Hough变换-理解篇 霍夫变换(Hough Transform)是图像处理中的一种特征提取技术,它通过一种投票算法检测具有特定形状的物体.该过程在一个参数空间中通过计算累计结果的局部最大值得到一个符 ...

  4. ROS(二)Service通信

    使用自定义的消息类型,实现service方式的节点间双向通信 在package目录下创建msg和srv目录,存放package需要使用的.msg和.srv文件. 在ROS中,message被设计为一种 ...

  5. Ubuntu配置IP

    Ubuntu网络配置的常用系统,于是我学习研究了Ubuntu网络配置,在这里对大家详细介绍下Ubuntu网络配置应用,希望对大家有用Ubuntu网络配置包含了非常好的翻译和容易使用的架构./etc/n ...

  6. C# 委托 / 跨线程访问UI / 线程间操作无效: 从不是创建控件“Form1”的线程访问它

    C# 委托 / 跨线程访问UI /  线程间操作无效: 从不是创建控件“Form1”的线程访问它 网上的代码都比较复杂,还是这个简单 见代码, 简易解决办法: 主窗体代码 using System; ...

  7. 惊喜Skr人,Istio的创始人Shriram Rajagopalan手把手教你如何使用Istio

    Shriram与来自Google.Lyft.IBM和其他公司的社区贡献者们一起并肩作战,积极地向Istio和Envoy项目作贡献.同时,Shriram是IBM的Amalgam8项目的创始成员之一.目前 ...

  8. ElasticSearch搜索引擎安装配置拼音插件pinyin

    近几篇ElasticSearch系列: 1.阿里云服务器Linux系统安装配置ElasticSearch搜索引擎 2.Linux系统中ElasticSearch搜索引擎安装配置Head插件 3.Ela ...

  9. <cfenv>(fenv.h) _c++11

    头文件 <cfenv>(fenv.h) c++11 浮点环境 这个头文件声明了一系列的函数和宏去访问浮点环境,以及特殊的类型. 浮点环境维护一系列的状态标志(status flags)和具 ...

  10. leetcode-汉明距离

    汉明距离 两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目. 给出两个整数 x 和 y,计算它们之间的汉明距离. 注意: 0 ≤ x, y < 231. 示例: 输入: x = ...