本篇主要内容

• set集合的特点

• set集合的建立

• set集合的17个内置函数

• set集合的数学运算符号

1、set集合类型的特点。

1、无序

2、不同元素

3、元素必须不可变。(数字,字符串,元组都属于不可变的,列表,字典属于可变的。)

2、set集合的建立

a={'Albert', 'QQ','XP'}
print(type(a),a)

输出

<class 'set'> {'Albert', 'QQ', 'XP'}

元素不可为可变数据类型

a={'Albert', 'QQ','XP',(,,)}
print(a)
b={'Albert', 'QQ','XP',[,,]}
print(b)

输出

{'XP', (1, 2, 3), 'Albert', 'QQ'}
Traceback (most recent call last):
File "C:/Users/admin/PycharmProjects/temp.py", line 12, in <module>
b={'Albert', 'QQ','XP',[1,2,3]}
TypeError: unhashable type: 'list'

也可以这样新建一个集合

a=set(['Albert', 'QQ','XP'])
print(a)

输出

{'Albert', 'QQ', 'XP'}

也就是遍历元素生成一个集合。

3、set的内置函数方法

(1)add(self, *args, **kwargs):这很简单的往集合里面放元素。

a=set(['Albert', 'QQ','XP'])
a.add('yzp')
print(a)

输出

{'XP', 'Albert', 'QQ', 'yzp'}

从输出可以看出来集合里面元素的存放是无序的。

注:一次只能加一个不可变元素。

(2)clear(self, *args, **kwargs):清空整个集合

(3)copy(self, *args, **kwargs):复制一个一模一样的集合(还是b=a与b=a.copy()的区别)

(4)difference(self, *args, **kwargs):得到多个集合的差集。

a={'Albert', 'QQ','XP'}
b={'QQ','XP','yzp'}
print(a.difference(b))

输出

{'Albert'}

直白的说就是a有而b没有的。

(5)difference_update(self, *args, **kwargs):求差集并更新这个集合

a={'Albert', 'QQ','XP'}
b={'QQ','XP','yzp'}
print(a.difference_update(b))
print(a)

输出

None
{'Albert'}

(6)discard(self, *args, **kwargs):删除集合里面的指定元素,如果不存在这个元素,什么也不做(不报错)

a={'Albert', 'QQ','XP'}
a.discard('QQ')
print(a)

输出

{'XP', 'Albert'} 

(7)intersection(self, *args, **kwargs):求交集

a={'Albert', 'QQ','XP'}
b={'QQ','XP','yzp'}
print(a.intersection(b))

输出

{'QQ', 'XP'}

通俗的来说就是ab都有的

(8)intersection_update(self, *args, **kwargs):求交集并更新集合

a={'Albert', 'QQ','XP'}
b={'QQ','XP','yzp'}
print(a.intersection_update(b))
print(a)

输出

None
{'XP', 'QQ'}

(9)isdisjoint(self, *args, **kwargs):如果交集为空,返回true

a={'Albert', 'QQ','XP'}
b={'QQ','XP','yzp'}
print(a.isdisjoint(b))

输出

False

(10)issubset(self, *args, **kwargs),判断是不是被包含。

a={ 'QQ','XP'}
b={'QQ','XP','yzp'}
print(a.issubset(b))

输出

True

(11)issuperset(self, *args, **kwargs):判断是不是包含

a={ 'Albert','QQ','XP'}
b={'QQ','XP'}
print(a.issuperset(b))

输出

True

(12)pop(self, *args, **kwargs):随机删除一个元素,如果集合为空,则报错KeyError

a={ 'Albert','QQ','XP'}
a.pop()
print(a)

输出

{'QQ', 'XP'}

(13)remove(self, *args, **kwargs):删除指定元素,元素不存在则报错KeyError

a={ 'Albert','QQ','XP'}
a.remove('Albert')
print(a)
a.remove('yzp')

输出

{'QQ', 'XP'}
Traceback (most recent call last):
File "C:/Users/admin/PycharmProjects/temp.py", line 13, in <module>
a.remove('yzp')
KeyError: 'yzp'

(14)symmetric_difference(self, *args, **kwargs):求交叉补集

a={ 'Albert','QQ','XP'}
b={'QQ','XP','yzp'}
print(a.symmetric_difference(b))

输出

{'Albert', 'yzp'}

(15)symmetric_difference_update(self, *args, **kwargs):求交叉补集并更新集合

(16)union(self, *args, **kwargs):求并集

a={ 'Albert','QQ','XP'}
b={'QQ','XP','yzp'}
print(a.union(b))

输出

{'XP', 'QQ', 'yzp', 'Albert'}

(17)update(self, *args, **kwargs):更新集合。也就是求并集并更新这个集合

a={ 'Albert','QQ','XP'}
b={'QQ','XP','yzp'}
a.update(b)
print(a)

输出

{'yzp', 'Albert', 'QQ', 'XP'}

4、数学运算符

求交集 a&b

求并集 a|b

求差集 a-b,或者b-a

求交叉补集 a^b

a={,,}
b={,,}
print(a&b)
print(a|b)
print(a-b)
print(b-a)
print(a^b)

输出

{, }
{, , , }
{}
{}
{, }

Python——数据类型之set的更多相关文章

  1. python 数据类型---布尔型& 字符串

    python数据类型-----布尔型 真或假=>1或0 >>> 1==True True >>> 0==False True python 数据类型----- ...

  2. Python 数据类型及其用法

    本文总结一下Python中用到的各种数据类型,以及如何使用可以使得我们的代码变得简洁. 基本结构 我们首先要看的是几乎任何语言都具有的数据类型,包括字符串.整型.浮点型以及布尔类型.这些基本数据类型组 ...

  3. day01-day04总结- Python 数据类型及其用法

    Python 数据类型及其用法: 本文总结一下Python中用到的各种数据类型,以及如何使用可以使得我们的代码变得简洁. 基本结构 我们首先要看的是几乎任何语言都具有的数据类型,包括字符串.整型.浮点 ...

  4. Python数据类型及其方法详解

    Python数据类型及其方法详解 我们在学习编程语言的时候,都会遇到数据类型,这种看着很基础也不显眼的东西,却是很重要,本文介绍了python的数据类型,并就每种数据类型的方法作出了详细的描述,可供知 ...

  5. Python学习笔记(五)--Python数据类型-数字及字符串

    Python数据类型:123和'123'一样吗?>>> 123=='123'False>>> type(123)<type 'int'>>> ...

  6. python数据类型之元组、字典、集合

    python数据类型元组.字典.集合 元组 python的元组与列表类似,不同的是元组是不可变的数据类型.元组使用小括号,列表使用方括号.当元组里只有一个元素是必须要加逗号: >>> ...

  7. 1 Python数据类型--

    常见的Python数据类型: (1)数值类型:就是平时处理的数字(整数.浮点数) (2)序列类型:有一系列的对象并排或者排列的情况.如字符串(str),列表(list),元组(tuple)等 (3)集 ...

  8. Python数据类型和数据操作

    python数据类型有:int,float,string,boolean类型.其中string类型是不可变变量,用string定义的变量称为不可变变量,该变量的值不能修改. 下面介绍python中的l ...

  9. Python数据类型(python3)

    Python数据类型(python3) 基础数据类型 整型 <class 'int'> 带符号的,根据机器字长32位和64位表示的范围不相同,分别是: -2^31 - 2^31-1 和 - ...

  10. 二、Python数据类型(一)

    一.Python的基本输入与输出语句 (一)输出语句 print() 示例: print('你好,Python') print(4+5) a = 10 print(a) 输出的内容可以是字符串,变量, ...

随机推荐

  1. ATK-DataPortal 设计框架(三)

    边界清晰.服务自治.契约共享.基于策略的兼容性,是面向对向设计时四个基本原则,我们的应用可能分布在不同的环境之中,应用可能在同一服务器中,也可能在不同的网络环境中,保证框架的基类能在不同环境中仍然可用 ...

  2. xcode 快捷键大全、XCode常用快捷键图文介绍

    其实就是设置里面的快捷键变成了文字版,刚开始用Xcode是不是发现以前熟悉的开发环境的快捷键都不能用了?怎么快捷运行,停止,编辑等等.都不一样了.快速的掌握这些快捷键,能提供开发的效率. 其实快捷键在 ...

  3. 执行计划sql

    我准备开始分析并优化我的查询.在分析之前,我想到了一些问题. MS-SQL Server什么时候使用"Table Scan"? MS-SQL Server什么时候使用"I ...

  4. [HAOI2010]软件安装(树形背包,tarjan缩点)

    题目描述 现在我们的手头有N个软件,对于一个软件i,它要占用Wi的磁盘空间,它的价值为Vi.我们希望从中选择一些软件安装到一台磁盘容量为M计算机上,使得这些软件的价值尽可能大(即Vi的和最大). 但是 ...

  5. 关于mysql的优化

    MYSQL的优化一个很棘手的问题,也是一个公司最想处理得当的问题. 那么今天,本人为大家带来几点优化数据库的方法: 1.选取最适用的字段属性 一般来说,数据库的的表越小,在其上面执行的查询也会越快.因 ...

  6. Shell 脚本进程并发&进程数控制

    Shell 都以串行的方式自上而下执行命令,不适用需要大量作业的场景. 学习此篇shell脚本进程并发,能够大大提高工作效率~ 通过wait 和 & 后台符号 可以实现并行,但无法控制进程数. ...

  7. javascript--事件对象e的来源、意义、应用及其属性的用法 function(e){}

    在类似于arcgis api for javascript中,经常会遇到function(e),以前一直不懂e是个什么玩意,这种写法啥意思,经过最近一段时间学习,对e有了很深了解,本文通过各种示例,由 ...

  8. djangorestframework怎么这么好用!

    一年前就已经用过restframework, 当时觉得这个只是给web框架打辅助的, 他能实现的我也都实现(可能没有那么好用, 嘿嘿) 但是我有一种东西叫做效率, 时间就是金钱, 别人造好的就直接用就 ...

  9. Python爬虫爬取豆瓣电影之数据提取值xpath和lxml模块

    工具:Python 3.6.5.PyCharm开发工具.Windows 10 操作系统.谷歌浏览器 目的:爬取豆瓣电影排行榜中电影的title.链接地址.图片.评价人数.评分等 网址:https:// ...

  10. 016---Django的ModelForm

    对于forms组件虽然可以帮我们渲染html页面,也可以做校验,但是,保存到数据库要取各字段的值,还要手动保存.所以引入了一个新的组件 这是一个神奇的组件,通过名字我们可以看出来,这个组件的功能就是把 ...