Python基础(06)——集合(set、frozenset)
Python基础(06)——集合(set、frozenset)
集合是无序无索引的集合,在Python中集合用花括号表示,字典也用花括号表示。
1.set的定义
创建集合:集合种的集合项可以是不同数据类型的元素。
创建集合有俩种方法,1.将集合直接赋值给变量 2.使用set()集合创建函数来创建集合
thisset = {"apple","orange","banana"}
thisset = set(("apple","orange","banana"))
因为集合是无序的,所以无法显示集合项的显示顺序。所输出的序列为任意序列
2. 访问集合项
因为set是无序的,无法通过索引访问集合项,但是可以使用for循环遍历集合项
thisset = {"apple","orange","banana"}
for x in thisset:print(x)
#---output---
# banana
# orange
# apple
可以用**“in”**关键字检查集合项中是否有指定的集合项
print("banana" in thisset) #True
3. 更改集合项
集合一旦创建不可以更改其集合项。但是可以添加新的集合项,或者删除集合项。
3.1 添加新集合项
在集合中添加新的集合项有两种方法:
1.通过add()方法,可添加一个集合项
2.通过update()方法,可以添加多个集合项
thisset.add("cherry")
thisset.update("1","2") #此方法必须传入字符串类型参数
3.2 删除集合项
删除集合项有三种方法
1.使用remove()方法删除指定的集合项
2.使用discard()方法删除指定的集合项
3.使用pop()方法删除最后一个集合项。因为集合是无序的,所以并不知道删除的是哪一项。所以此方法的返回值就是删除的集合项。
thisset = {'banana', '2', 'apple', 'cherry', '1', 'orange'}
thisset.remove("1")
thisset.discard("2")
print(thisset) # {'banana', 'apple', 'cherry', 'orange'}
print(thisset.pop()) # banana
在删除集合项时,若集合中没有此集合项,其中remove()将会引发KeyError错误,discard()方法不执行删除操作。
4.set常用方法
add() | 向集合添加元素。 |
---|---|
clear() | 删除集合中的所有元素。 |
copy() | 返回集合的副本。 |
difference() |
返回包含两个或更多集合之间差异的集合。 如: set = set1.different(set2) 查看并返回在set1种但不在set2中的集合,并未将其删除。 |
difference_update() |
删除此集合中也包含在另一个指定集合中的项目。 如:set1.different_update(set2) 删除set1中两个集合都存在的项目 |
discard() | 删除指定项目。 |
intersection() |
返回为两个其他集合的交集的集合。 如:set1.intersection(set2) 返回新集合,其中包含在set1中和set2中的项目集合 |
intersection_update() |
删除此集合中不存在于其他指定集合中的项目。 如:set1.intersection_update(set2) 在set1中删除set1和set2都互不存在的项目 |
isdisjoint() |
返回两个集合是否有交集。 如:set1.isdisjoint(set2) 没有交替返回True |
issubset() |
返回另一个集合是否包含此集合。 如:set1.issubset(set2) 检查set2中是否包含set1的所有集合项,是返回True,否则返回False |
issuperset() |
返回此集合是否包含另一个集合。 如:set1.issuperset(set2)检查set2中的所有集合项是否都存在与set1中,如果是是返回True。 |
pop() | 从集合中删除一个元素。 |
remove() | 删除指定元素。 |
symmetric_difference() |
返回具有两组集合的对称差集的集合。 set1.symmetric_difference(set2) 返回新集合,其中包含两个集合中的所有项目,但不包含两个集合中都存在的项目。 |
symmetric_difference_update() |
插入此集合和另一个集合的对称差集。 set1.symmetric_difference_update(set2) 在set1中插入set2中有set1没有,并删除两者都有的集合项, |
union() |
返回包含集合并集的集合。 set1.union(set2) 将set1的set2的并集 返回新集合 |
update() |
用此集合和其他集合的并集来更新集合。 set1.union(set2) 是在set1中插入set2有但是set1没有的集合项 |
具体操作如下
set1 = {"a","b","c","d"}
set2 = {"a","b","1","2"}
#一下操作均是在set1 = {"a","b","c","d"} set2 = {"a","b","1","2"}的基础进行操作
print(set1.difference(set2))set1.difference_update(set2)
print(set1)print(set1.intersection(set2))set1.intersection_update(set2)
print(set1)print(set1.isdisjoint(set2))print(set1.issubset(set2))print(set1.issuperset(set2))print(set1.symmetric_difference(set2))set1.symmetric_difference_update(set2)
print(set1)print(set1.union(set1))set1.update(set2)
print(set1)
#---output---
# {'c', 'd'}
# {'d', 'c'}
# {'a', 'b'}
# {'b', 'a'}
# False
# False
# False
# {'2', 'c', 'd', '1'}
# {'c', '1', 'd', '2'}
# {'a', 'd', 'b', '1', '2', 'c'}
# {'b', 'd', '2', 'a', 'c', '1'}
5.set和frozenset的区别
不同点:
1.set集合是可变序列集合,frozenset集合是不可变的序列集合,frozenset集合相当于一个冻结的集合,可以作为字典的键。
2.set集合中能改变集合本省的方法,如pop,remove,discard、add方法,frozenset均不支持。
3.set集合对象还支持union(联合), intersection(交集), difference(差集)和sysmmetric difference(对称差集)等数学运算
4.创建方式不同,frozenset使用圆括号和方括号创建集合
f_set = frozenset(["5",1,2,3])
for f in f_set:print(f)
共同点:
- for循环可以遍历frozenset集合
- 关键字in可以检查集合项
f_set = frozenset(["5",1,2,3])
for f in f_set:print(f)if 1 in f_set:print("Yes")#---output---
#5
#1
#2
#3#Yes
Python基础(06)——集合(set、frozenset)相关推荐
- Python基础——数据类型—集合
Python基础--数据类型-集合 Python基础--数据类型-集合 创建集合 快速查看元素是否在集合内 两个集合间的运算 集合a中包含,而集合b中不包含的元素 集合a或集合b中包含的所有元素 集合 ...
- Python基础---容器集合Set
集合Set(无序集合) 定义:一组包含具有唯一性元素,且无序的数据. 其中的元素可以是int,float,bool,string,tuple,冰冻集合.复数等 集合中的元素,无法进行修改 创建: ...
- Python基础之集合
定义:'''集合(Set) 集合是无序和无索引的集合.在 Python 中,集合用花括号编写.''' 1,创建集合 set_baby = {'牛犊', '羊仔', '小熊猫', '小猪熊'} prin ...
- Python基础:集合与文件操作
集合 集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的.以下是集合最重要的两点: 去重,把一个列表变成集合,就自动去重了. 关系 ...
- python基础之集合运算
博主简介:原互联网大厂tencent员工,网安巨头Venustech员工,阿里云开发社区专家博主,微信公众号java基础笔记优质创作者,csdn优质创作博主,创业者,知识共享者,欢迎关注,点赞,收藏. ...
- 01.Python基础-3.集合容器
1 列表list 1.1 列表介绍 Python内置的一种数据类型是列表:list. 有序的集合,可随时添加和删除其中的元素. 每个元素都分配一个数字 --它的位置,或索引.0,1,2,3-- 可存放 ...
- python基础七--集合
12.22 1.昨日内容回顾 小数据池:int:-5--256str:1.不能有特殊字符2.*int不能超过20编码:所能看到的最小构成单位叫字符ascii : 8位 1字节 表示1个字符unicod ...
- JAVA基础-06.集合-14.【List、Set】
01_数据结构_栈&队列 02_数据结构_数组 03_数据结构_链表 04_数据结构_红黑树 05_HashSet集合存储数据的结构(哈希表) 06_Set集合存储元素不重复的原理 day03 ...
- Python基础之集合set操作
集合的特性:无序.不存在重复元素 set和frozenset的区别:frozenset没有add/update/remove等属性 s = {4,5,6} print(s) print(type(s) ...
- 最新最全的python 基础知识集合
1.执行脚本的两种方式 Python a.py 直接调用Python解释器执行文件 chomd +x a.py ./a.py #修改a.py文件的属性,为可执行,在用 ./ 执行a.py 文件 2.简 ...
最新文章
- 通过BCS对象模型使用筛选器
- 耶鲁大学等机构提出的脑机接口软硬件协同设计,增加脑机的更大潜力
- 正则表达式匹配换行符
- 不能不知道的Docker知识
- 公众号质量改进调查问卷
- RocketMQ部署安装注意事项
- lstm 输入数据维度_LSTM 股票市场预测入门
- 你需要了解的 JIT Debugging
- c语言程序命令行,ttyd(C语言编写的命令行程序) v1.3.1 免费版
- 数组逆序重存放(信息学奥赛一本通-T1105)
- mysql提权马免杀_webshell/牛逼免杀提权隐藏大马.asp at master · tennc/webshell · GitHub...
- 【华为机试题 HJ72】百钱买百鸡问题
- 海洋迅雷VIP帐号获取器
- java多线程并发测试工具_【漫画】JAVA并发编程之并发模拟工具
- 苹果系统 怎么找到共享计算机,Mac电脑怎么访问共享文件夹
- iOS URL Scheme
- Tesseract文字训练,以及样本生成
- 腾讯互娱刘伟 | 知识图谱在运维中的应用
- 圆里面画一个最大的正方形_在圆里画一个最大的正方形发现了什么
- C++中cos,sin,asin,acos这些三角函数操作