python集合类型_Python 的集合(set)类型
本文简单介绍了Python语言里set类型自带的方法,set类型表示元素和集合的从属关系(membership),和列表等序列相比,最大的特点是无序。可以跟数学里的集合概念完全对应起来。
目录
概念
数学里的集合概念,在Python语言里对应的是set类型。与list,tuple不同的地方是,set更加强调的是一种“从属关系”(membership),跟顺序无关,所以有重复的元素会先排除。
>>> set([1, 1, 1, 1, 2, 3])
set([1, 2, 3]) #重复元素被排除
>>> set([3, 2, 1])
set([1, 2, 3]) #无序的集合
>>>
set类型的创建
花括号用来创建set类型的变量,这与字典很类似,只是缺少了value,后面会逐渐发现,set类型和字典的key有一些类似之处,比如:无序、不可重复、必须是hashable的,所以用花括号表示,是理所当然的。
set类型还有一种标准的表示法是 set([…]) ,例如
>>> {'a','b'}
set(['a', 'b'])
>>>
set添加元素
set类型有内置函数add用来给set添加元素
>>> A = {'a','b'}
>>> A.add('c')
>>> A
set(['a', 'c', 'b'])
>>>
set更新元素
set类型有四个内置update函数用来给set添加元素,对应于Python 的集合运算中的4种运算
并集更新
与add类似,只是添加的不是单个元素,而且另一个集合,这和字典的update函数功能非常相似。最后的结果是两个集合的并集
>>> A = {'a','b'}
>>> A.update({'c', 'd'}) #iterable的参数都可以传递
>>> A
set(['a', 'c', 'b', 'd'])
>>>
另一种写法是:@|=@
>>> A = {'a','b'}
>>> A |= {'c', 'd'}
>>> A
set(['a', 'c', 'b', 'd'])
>>>
交集更新
内置函数intersection_update返回的结果是两个集合的交集
>>> A = {'a','b'}
>>> A.intersection_update({'b', 'd'}) #iterable的参数都可以传递
>>> A
set(['b'])
>>>
另一种写法是 &=
>>> A = {'a','b'}
>>> A &= {'b', 'd'}
>>> A
set(['b'])
>>>
差集更新
内置函数difference_update返回的结果是两个集合的差集
>>> A = {'a','b'}
>>> A.difference_update({'b', 'd'}) #iterable的参数都可以传递
>>> A
set(['a'])
>>>
另一种写法是 -=
>>> A = {'a','b'}
>>> A -= {'b', 'd'}
>>> A
set(['a'])
>>>
对称差集更新
内置函数symmetric_difference_update返回的结果是两个集合的对称差集
>>> A = {'a','b'}
>>> A.symmetric_difference_update({'b', 'd'}) #iterable的参数都可以传递
>>> A
set(['a', 'd'])
>>>
另一种写法是 ^=
>>> A = {'a','b'}
>>> A ^= {'b', 'd'}
>>> A
set(['a', 'd'])
>>>
set移除元素
remove函数
set类型有好几个内置函数用来从set中移除已有的元素,首先是remove函数,如果remove的元素不存在,会抛出KeyError异常。
>>> A = {'a','b'}
>>> A.remove('c')
Traceback (most recent call last):
File "", line 1, in
A.remove('c')
KeyError: 'c'
>>>
discard函数
若要不抛出异常,可以使用discard函数
>>> A = {'a','b'}
>>> A.discard('c')
>>> A
set(['a', 'b'])
>>>
pop函数
上述两个函数都是指定set中某一个元素,而pop函数无需指定元素,每次运行时会删除任意一个元素,并返回这个元素的值。当set为空时,抛出 KeyError
>>> A = {'a','b'}
set(['a', 'b'])
>>> A.pop()
'a'
>>> A.pop()
'b'
>>> A.pop()
Traceback (most recent call last):
File "", line 1, in
A.pop()
KeyError: 'pop from an empty set'
>>>
清空set
set的内置函数 clear 用来清空set
>>> A = {'a','b'}
set(['a', 'b'])
>>> A.clear()
>>> A
set([])
>>>
set comprehension
与list、dict类似,set类型也能有comprehension的构造法:
>>> {i for i in range(10)}
set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>>
python集合类型_Python 的集合(set)类型相关推荐
- python 字符串交集_Python序列--集合(set)
集合 集合用于保存不重复元素. - 集合和列表非常相似 - 不同点: 1.集合中只能存储不可变对象 2.集合中存储的对象是无序(不是按照元素的插入顺序保存) 3.集合中不能出现重复的元素 集合的所有元 ...
- python补集运算_Python 的集合(set)运算
数学里集合运算在 Python 语言的 set 数据类型中也有对应的运算. 子集⊆.真子集⊂ 判断真子集的 ⊂ 符号,在 Python 语言中,对应 set 类型的 < 运算 判断子集的 ⊆ 符 ...
- [转载] python set大小_python set集合
参考链接: Python集合set Python set集合 最后更新于:2020-03-21 12:06:03 在python变量中除了以前文章所提到的整形int / 浮点数float / 布尔值b ...
- [转载] python创建集合set()_python 之集合{}(Set)
参考链接: Python 集合set pop() 集合# 集合set 是装有独特值的无序"袋子".一个简单的集合可以包含任何数据类型的值.如果有两个集合,则可以执行像联合.交集以及 ...
- python提供的三种基本数值类型_Python 基础数据类型-数值类型
Python 基础数据类型-数值类型 为什么会有数据类型?[了解] 更好分配管理内存 方便统一管理 更贴近人类分类管理习惯 数据类型种类 [熟悉] 数值类型:int.bool.float.comple ...
- python set大小_python set集合
集合set 可变的 无序的 不重复的元素集合 set定义 初始化 set() 生成一个空集合 set(iterable) 可通过可迭代对象生产一个新的集合 s1 =set() s2= set(rang ...
- python集合输出_Python之集合
集合:无序的,不可随机访问的,不可重复的元素集合 # 可以使用大括号 { } 或者 set() 函数创建集合, # 注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个 ...
- python语法错误类型_python常见报错类型和异常处理
更新ing 常见的报错类型和简析.异常处理.其他类型的报错(异常)类型简介.自定义异常 常见的报错类型和简析: 报错类型 报错内容 错误类型判断 错误解决方式 AttributeError 属性错误: ...
- 简述python中的数值类型_Python中的数值类型
本文将介绍Python语言的一种基本数据类型:数值类型. 一. 数值类型 Python语言的数值类型有四种,分别是:整型.长整型.浮点型和复数类型.下面我们首先介绍整型数据. 1.整型 Python语 ...
最新文章
- RESTful API 设计规范精讲
- 活见鬼,明明删除了数据,空间却没减少!
- 窥透Fortran的方方面面
- 中国光大集团去年营收1617亿元 同比增长19%
- 油管螺纹尺寸对照表_数控加工过程中,如何区分新旧螺纹牌号?
- hdu 2454 Degree Sequence of Graph G(可简单图化判定)
- Linux——更改文件及目录权限(d rwx r-x r-x字段详解+更改代码指令)
- 这真不是网友P的图?雷军微博曝光小米9 SE真机图 彩虹小米有点炫酷
- SwipeRefreshLayout + RecyclerView 实现 上拉刷新 和 下拉刷新
- 选offer的5个维度
- Python 内置函数介绍
- python 百度文库_百度文库文档下载地址解析python版【摸索不易,还请支持】
- HDFS的命令行使用【常用 hdfs 命令】
- UI自动化测试实战--- app订单、web发货(9)
- 用等价类划分方法编写测试用例
- 概率分布-beta分布
- Docker容器内安装wkhtmltox用来html转pdf
- 计算机房灭火器采用哪种类型,机房灭火器类型有哪些
- vue-router路由防卫
- okio篇 1.Buffer
热门文章
- vs找不到dll_零基础学习Python_绝对VS相对
- 好消息acesse_真实的acesse爱搜索 黑心传销骗子
- 到底什么是云计算-转自http://blog.csdn.net/adwu73
- Codeforces 432D Prefixes and Suffixes (KMP、后缀数组)
- 面向对象发牌Java_面向对象思路的斗地主发牌小程序
- python修改电脑名称_python 脚本之批量更改主机名
- ie浏览器修复_腾讯安全:IE浏览器曝远程执行代码漏洞 腾讯安全强势推出漏洞修复工具...
- mysql架设_服务器架设MySQL开发规范与使用技巧
- 安卓java模拟器_用大白话告诉你:Java 后端到底是在做什么?
- 20211028 调节和跟踪