什么是集合? python3中常用的方法有哪些?

一:什么是集合?

1、集合(set)是可变的容器。

2、集合内的数据对象是唯一的(是不能重复的)。

3、集合是无序的存储结构,集合中的数据没有先后关系(特点:插入、删除比较快)。

4、集合内的元素必须是不可变对象。

5、集合是可迭代的。

6、集合是相当于只有键没有值的字典(键则是集合的数据)。

二:集合的创建

1、创建空的集合: s = set()

2、创建非空集合: s = {1,2,3} #集合中的三个整数:1,2, 3

3、集合的构造函数:

Set() 创建空集合

Set(iterable) 用可迭代对象创建一个新的集合

示例:

s = set(‘ABC’)

s = set(‘ABCCBA’) ---- 多了一个A和C,默认会把多余的A\C删除

s = set({1:’一’, 2:’二’, 3:’三’}) 用字典生成的集合,只有键,没有值

s = set([1, 3.14, False])

s = set((2,3,5,7)) ----- 元组转换成集合

三:集合的运算:交集、 并集 、补集、 子集、 超集

1、生成两个集合的交集: &

S1 = {1,2,3}

S2 = {2,3,4}

S3 = s1 & s2

2、生成两个集合的并集:| (即存在s1中,也存在s2中,去掉重复项)

S1 = {1,2,3}

S2 = {2,3,4}

S3 = s1 | s2

4、生成两个集合的补集:- 生成属于s1,但不属于s2的所有元素的元素的集合。

S1 = {1,2,3}

S2 = {2,3,4}

S3 = s1 - s2

5、生成两个集合的对称补集:^

S1 = {1,2,3}

S2 = {2,3,4}

S3 = s1 ^ s2

6、判断一个集合是另一个集合的子集: <

S1 = {1, 2, 3}

S2 = {2, 3}

S2 < s1 #True 判断子集

7、判断一个集合是另一个集合的超集: >

S1 = {1, 2, 3}

S2 = {2, 3}

S1 > s2 #True 判断超集

8、== != 集合相同/不同

S1 = {1, 2, 3}

S2 = {2, 3,1}

S1 == s2 #True

S1 != s2 # 集合的数据没有先后关系

9、 in /not in 运算符

等同于字典,in运算符用于集合中,当某个值存在于集合中,则为真,否则为假,not in与in返回值相反。

示例:

S = {1, ‘Two’3.14}

1 in s #True

2 in s #False

3.14 not in s #False

4not in s #True

四:集合的方法:集合是可变对象,可用方法添加、删除集合的数据。

A:集合与列表等一些常用的方法相似

1、s.add(e) 在集合中添加一个新的元素e;如果元素已经存在,则不添加

2、s.remove(e) 从集合中删除一个元素,如果元素不存于集合中,则会产生一个KeyError

3、s.clear(e) 清空集合内的所有元素

4、s.discard(e) 从集合s中移除一个元素e,在元素e不存在时什么都不做

5、s.copy() 将集合进行一次浅拷贝

6、s.pop() 从集合中删除一个随机元素,如果此集合为空,则引发错误

7、update(s2) 用s与s2得到的全集更新

B:集合专用方法

1、s.difference(s2) 用s – s2运算,返回存在于在s中,但不在s2中的所有元素

2、s.difference_update(s2) 等同于s = s – s2

3、s.intersection(s2) 等同于s & s2

4、s.intersection_update(s2) 等现于 s = s &s2

5、s.isdisjoint(s2) 如果s与s2交集为空返回True,非空则返回False

6、s.issubset(s2) 如果s与s2交集为非空返回True,空则返回False

7、s.issuperset() 如果s 为s2的子集返回True,否则返回False

8、s.symmetric_difference(s2) 返回对称补集,等同于s^s2

9、s.symmetric_difference_update(s2) 用s与s2的对称补集更新s

10、s.union(s2) 生成s与s2的全集

五:练习

任意输入一个单词,存入集合中,当输入回车时,结束输入

1、打印您输入的单词的种类数(去重)

2、每个字母都打印到终端上显示


推荐我们的Python学习扣qun:784758214 ,看看前辈们是如何学习的!从基础的python脚本到web开发、爬虫、django、数据挖掘等【PDF,实战源码】,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!每天都有大牛定时讲解Python技术,分享一些学习的方法和需要注意的小细节,点击加入我们的 python学习者聚集地

结语

今天要记的东西有点多,兄弟们,多多加油哦!如果喜欢小编的内容请互粉、评论、关注!

发布了35 篇原创文章 · 获赞 4 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/ITHHH777/article/details/104210068