在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
set又叫集合,它是⼀个十分重要的数据结构。它行为与数据结构列表数据结构相似,不同之处在于区别在于set包含重复的值。下面我们一起来看看set数据结构的概念、使用场景以及数学运算,总结梳理一下set数据结构的基础学习笔记。

1、set数据结构的概念
set(集合)是一组无重复无序的数据,就像数学中集合的概念。它没有标准的括号包裹,[]表示list,()表示tuple,{}表示dict。但是我们可以用带值的大括号来定义。set数据结构最大的作用就是去除重复的元素,如下所示:
set1 = {1, 2, 2, 3, 3, 3}
print(set1)
set1.add(1)
set1.add(4)
print(set1)
2、使用场景
set数据结构在很多情况下⾮常有⽤,例如你可能想检查列表中是否包含重复的元素,你有两个选择,第⼀个需要使⽤for循环,就像这样:
some_list = ['a', 'b', 'c', 'b', 'd', 'm', 'n', 'n']
duplicates = []
for value in some_list:
if some_list.count(value) > 1:
if value not in duplicates:
duplicates.append(value)
print(duplicates)
### 输出: ['b', 'n']
但还有⼀种更简单更优雅的解决⽅案,那就是使⽤集合(sets),直接这样做:
some_list = ['a', 'b', 'c', 'b', 'd', 'm', 'n', 'n']
duplicates = set([x for x in some_list if some_list.count(x) > 1]) print(duplicates)
### 输出: set(['b', 'n'])
3、数学运算
(1)交集
你可以对⽐两个集合的交集(两个集合中都有的数据),如下:
valid = set(['yellow', 'red', 'blue', 'green', 'black']) input_set = set(['red', 'brown'])
print(input_set.intersection(valid))
### 输出: set(['red'])
(2)差集
你可以⽤差集(difference)找出⽆效的数据,相当于⽤⼀个集合减去另⼀个集合的数据,例如:
valid = set(['yellow', 'red', 'blue', 'green', 'black']) input_set = set(['red', 'brown'])
print(input_set.difference(valid))
### 输出: set(['brown'])
(3)用符号
a_set = {'red', 'blue', 'green'}
print(type(a_set))
### 输出: <type 'set'>
以上就是set数据结构基础学习笔记,大家都掌握了吗?更多学习干货,尽在博学谷资讯。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
30岁零基础没学历学Python怎么样?30岁学习Python晚吗?
30岁零基础没学历学Python怎么样?30岁学习Python晚吗?任何时候开始都不晚。30岁开始学习Python听起来年纪有点大,大家认为编程上了年纪学习编程语言是一个劣势。想在三十岁的时候通过学习Python来谋求一份IT程序员工作,则需要有一个系统的计划。
6920
2020-03-20 14:24:22
数据分析师需要学习哪些知识?
数据重要性不用多说,如今,运营、市场、销售等岗位都要求“数据分析”能力。而励志“数据分析”方向的同学,如果有扎实专业技能,再加一定业务解决能力,无论在严峻的当下,还是未来,对求职面试,或升职涨薪,都会有很大帮助。下面我们来看一看数据分析师需要学习的 Python 基础、科学计算库、Mysql 等知识,希望能帮不同阶段的朋友有效提升学习、工作效率,迅速扫清职场障碍。
8078
2020-06-05 10:29:21
人工智能难学吗?通过培训能学会吗?
很多人都认为学习人工智能非常难,其实只要认真参加培训班的培训,人工智能也并不难学。以前的计算机专业是一个领域较宽的培养模式,在更多人学习java、UI设计等不同的专业时,人工智能的课程就显得更加稀少了,即算是各高校的优秀学生,在不准备对人工智能进行专研的基础下,对人工智能的了解可能只能达到“高级科普”的程度。
7851
2020-06-15 17:44:25
多任务版静态Web服务器程序怎么写?
多任务版静态Web服务器程序怎么写?在Web服务器不支持多用户同时访问时,只能一个一个的处理客户端的请求,而多任务版的web服务器可以同时处理多个客户端的请求,使用多线程比进程更加节省内存资源。
4536
2021-12-22 09:54:44
事件代理如何使用?代码怎么写?
事件代理如何使用?代码怎么写?事件代理就是把一个元素响应事件(click、keydown…)的函数委托到另一个元素。在 JavaScript中的事件委托又称事件代理,事件委托就是利用事件冒泡,只指定一个事件处理程序管理某一类型的所有事件。
4716
2022-01-06 11:46:12
热门文章
- 前端是什么
- 前端开发的工作职责
- 前端开发需要会什么?先掌握这三大核心关键技术
- 前端开发的工作方向有哪些?
- 简历加分-4步写出HR想要的简历
- 程序员如何突击面试?两大招带你拿下面试官
- 程序员面试技巧
- 架构师的厉害之处竟然是这……
- 架构师书籍推荐
- 懂了这些,才能成为架构师 查看更多
扫描二维码,了解更多信息
