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)

共同点:

  1. for循环可以遍历frozenset集合
  2. 关键字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)相关推荐

  1. Python基础——数据类型—集合

    Python基础--数据类型-集合 Python基础--数据类型-集合 创建集合 快速查看元素是否在集合内 两个集合间的运算 集合a中包含,而集合b中不包含的元素 集合a或集合b中包含的所有元素 集合 ...

  2. Python基础---容器集合Set

    集合Set(无序集合) 定义:一组包含具有唯一性元素,且无序的数据.    其中的元素可以是int,float,bool,string,tuple,冰冻集合.复数等 集合中的元素,无法进行修改 创建: ...

  3. Python基础之集合

    定义:'''集合(Set) 集合是无序和无索引的集合.在 Python 中,集合用花括号编写.''' 1,创建集合 set_baby = {'牛犊', '羊仔', '小熊猫', '小猪熊'} prin ...

  4. Python基础:集合与文件操作

    集合 集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的.以下是集合最重要的两点: 去重,把一个列表变成集合,就自动去重了. 关系 ...

  5. python基础之集合运算

    博主简介:原互联网大厂tencent员工,网安巨头Venustech员工,阿里云开发社区专家博主,微信公众号java基础笔记优质创作者,csdn优质创作博主,创业者,知识共享者,欢迎关注,点赞,收藏. ...

  6. 01.Python基础-3.集合容器

    1 列表list 1.1 列表介绍 Python内置的一种数据类型是列表:list. 有序的集合,可随时添加和删除其中的元素. 每个元素都分配一个数字 --它的位置,或索引.0,1,2,3-- 可存放 ...

  7. python基础七--集合

    12.22 1.昨日内容回顾 小数据池:int:-5--256str:1.不能有特殊字符2.*int不能超过20编码:所能看到的最小构成单位叫字符ascii : 8位 1字节 表示1个字符unicod ...

  8. JAVA基础-06.集合-14.【List、Set】

    01_数据结构_栈&队列 02_数据结构_数组 03_数据结构_链表 04_数据结构_红黑树 05_HashSet集合存储数据的结构(哈希表) 06_Set集合存储元素不重复的原理 day03 ...

  9. Python基础之集合set操作

    集合的特性:无序.不存在重复元素 set和frozenset的区别:frozenset没有add/update/remove等属性 s = {4,5,6} print(s) print(type(s) ...

  10. 最新最全的python 基础知识集合

    1.执行脚本的两种方式 Python a.py 直接调用Python解释器执行文件 chomd +x a.py ./a.py #修改a.py文件的属性,为可执行,在用 ./ 执行a.py 文件 2.简 ...

最新文章

  1. 通过BCS对象模型使用筛选器
  2. 耶鲁大学等机构提出的脑机接口软硬件协同设计,增加脑机的更大潜力
  3. 正则表达式匹配换行符
  4. 不能不知道的Docker知识
  5. 公众号质量改进调查问卷
  6. RocketMQ部署安装注意事项
  7. lstm 输入数据维度_LSTM 股票市场预测入门
  8. 你需要了解的 JIT Debugging
  9. c语言程序命令行,ttyd(C语言编写的命令行程序) v1.3.1 免费版
  10. 数组逆序重存放(信息学奥赛一本通-T1105)
  11. mysql提权马免杀_webshell/牛逼免杀提权隐藏大马.asp at master · tennc/webshell · GitHub...
  12. 【华为机试题 HJ72】百钱买百鸡问题
  13. 海洋迅雷VIP帐号获取器
  14. java多线程并发测试工具_【漫画】JAVA并发编程之并发模拟工具
  15. 苹果系统 怎么找到共享计算机,Mac电脑怎么访问共享文件夹
  16. iOS URL Scheme
  17. Tesseract文字训练,以及样本生成
  18. 腾讯互娱刘伟 | 知识图谱在运维中的应用
  19. 圆里面画一个最大的正方形_在圆里画一个最大的正方形发现了什么
  20. C++中cos,sin,asin,acos这些三角函数操作

热门文章

  1. python opencv入门 SURF算法(34)
  2. java幂等_幂等性学习及接口的幂等性
  3. 孩子不爱学习怎么办?教你4个方法点燃孩子学习兴趣
  4. Es 查看集群详细信息
  5. mysql 权限命令 revoke_MySQL删除用户权限(REVOKE)
  6. 【实习招聘】腾讯2023届暑期实习生招聘
  7. HZNUOJ2794神枪手JoneySun (Super hard version)(思维)
  8. IT只忍者龟Photoshop简单人像的头发抠图过程
  9. day15 java基础(Collection类,List类,Object类)
  10. 2010年智能手表的创意