上手Python之set(集合)

举报
yd_249383650 发表于 2023/03/17 11:28:54 2023/03/17
【摘要】 ​ 为什么使用集合我们目前接触到了列表、元组、字符串三个数据容器了。基本满足大多数的使用场景。 为何又需要学习新的集合类型呢?通过特性来分析:列表可修改、支持重复元素且有序元组、字符串不可修改、支持重复元素且有序有没有看出一些局限?局限就在于:它们都支持重复元素。如果场景需要对内容做去重处理,列表、元组、字符串就不方便了。而集合,最主要的特点就是:不支持元素的重复(自带去重功能)、并且内容无...

 为什么使用集合

我们目前接触到了列表、元组、字符串三个数据容器了。基本满足大多数的使用场景。 为何又需要学习新的集合类型呢?

通过特性来分析:

列表可修改、支持重复元素且有序

元组、字符串不可修改、支持重复元素且有序

有没有看出一些局限?

局限就在于:它们都支持重复元素。

如果场景需要对内容做去重处理,列表、元组、字符串就不方便了。

而集合,最主要的特点就是:不支持元素的重复(自带去重功能)、并且内容无序

集合的定义

基本语法:

编辑

和列表、元组、字符串等定义基本相同:

列表使用:[]

元组使用:()

字符串使用:""

集合使用:{} 

编辑

编辑

结果中可见:

去重且无序

因为要对元素做去重处理

所以无法保证顺序和创建的时候一致 

集合的常用操作 - 修改 

首先,因为集合是无序的,所以集合不支持:下标索引访问

但是集合和列表一样,是允许修改的,所以我们来看看集合的修改方法。

添加新元素    

 语法:集合.add(元素)。将指定元素,添加到集合内      

结果:集合本身被修改,添加了新元素

编辑

移除元素      

语法:集合.remove(元素),将指定元素,从集合内移除      

结果:集合本身被修改,移除了元素 

编辑

从集合中随机取出元素      

语法:集合.pop(),功能,从集合中随机取出一个元素      

结果:会得到一个元素的结果。同时集合本身被修改,元素被移除

编辑

清空集合      

语法:集合.clear(),功能,清空集合      

结果:集合本身被清空 

编辑

取出2个集合的差集      

语法:集合1.difference(集合2)

功能:取出集合1和集合2的差集(集合1有而集合2没有的)      

结果:得到一个新集合,集合1和集合2不变 

编辑

消除2个集合的差集      

语法:集合1.difference_update(集合2)      

功能:对比集合1和集合2,在集合1内,删除和集合2相同的元素。      

结果:集合1被修改,集合2不变 

编辑

 2个集合合并      

语法:集合1.union(集合2)    

 功能:将集合1和集合2组合成新集合      

结果:得到新集合,集合1和集合2不变

编辑

集合的常用操作 - 集合长度 

 查看集合的元素数量      

语法:len(集合)    

 功能:统计集合内有多少元素    

 结果:得到一个整数结果

编辑

集合的常用操作 - for循环遍历 

集合同样支持使用for循环遍历

编辑

要注意:集合不支持下标索引,所以也就不支持使用while循环。


编号

操作

说明

1

集合.add(元素)

集合内添加一个元素

2

集合.remove(元素)

移除集合内指定的元素

3

集合.pop()

从集合中随机取出一个元素

4

集合.clear()

将集合清空

5

集合1.difference(集合2)

得到一个新集合,内含2个集合的差集

原有的2个集合内容不变

6

集合1.difference_update(集合2)

在集合1中,删除集合2中存在的元素

集合1被修改,集合2不变

7

集合1.union(集合2)

得到1个新集合,内含2个集合的全部元素

原有的2个集合内容不变

8

len(集合)

得到一个整数,记录了集合的元素数量

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。