Python学习之路-集合的介绍

简介: 今天学习一下集合

一、集合的特点

集合和列表非常相似,都是直接向对象中存储数据,不同点在于:

1.集合中只能存储不可变对象。例如字符串、数字、元组、none、TRUE、FALSE 都是可以存储的,但无法存储字典、列表。

2. 集合中存储的对象是无序的。这里的无序是相对于列表来说的。在列表中数据按照元素的插入顺序保存,存储的第n个数据会被放在索引为(n-1)的位置,而集合的无序指的是不按照元素的插入顺序保存,并不是真的完全无序。由于存储顺序与插入顺序无关,故无法根据索引查找数据。

3. 集合中不能出现重复的元素。即集合中的元素都是唯一的。

二、 创建集合

创建集合有两种方法:使用{ }来创建集合、使用函数set( )函数创建集合。

1、使用{}来创建集合

# 使用{}来创建集合s={1,2,3,4,5}
print(s,type(s))

image.png

这样似乎输入顺序和存储顺序一样,我们来试试另一组数据

s={10,6,3,1,7}
print(s,type(s))

得到的结果是:{1, 3, 6, 7, 10} ,这也说明了集合的一大特点:集合中存储的对象是无序的。

当输入重复元素时,集合只会保存一个元素。

s={10,6,3,4,5,3,3,6,6,7,7,1,7}
print(s,type(s))

得到的结果是:{1, 3, 4, 5, 6, 7, 10}

集合中无法保存可变对象,如列表、字典等。例如:

s={[1,2,3,4],[5,6,7]}
print(s,type(s))

则会报错:TypeError: unhashable type: 'list'

2.使用set()来创建集合

s=set()  # 空集合

可以通过 set( ) 将序列和字典转换成集合。例子:

s=set([1,2,3,4,5,3,2,1,1])  # 空集合print(s,type(s))
s=set('hello')    #使用set( )将序列转换成集合print(s,type(s))

得到的结果是:

{1, 2, 3, 4, 5}  和 {'h', 'e', 'l', 'o'}

还可以使用 in 和 not in 来检查集合中的元素

s={'a','b',1,2,3,4,1}
print('a'ins)

得到结论是True

使用 len( ) 获取集合中元素的数量

s={'a','b',1,2,3,4,1}
print(len(s))

得到是6个元素

三、 向集合中添加元素

可以使用 add( )向集合中添加元素,add( ) 是 没有返回值的。

s={'a','b',1,2,3,4,1}
s.add(8)
print(s)

结果就是:{1, 2, 3, 4, 'b', 8, 'a'}

update 将一个集合的元素添加到当前集合中。添加序列、字典也是可以的,需要注意的是,添加字典只会使用键。

s={'a','b',1,2,3,4,1}
s2=set('hello')
s.update(s2)
print(s)

结果就是:{1, 2, 3, 4, 'h', 'e', 'a', 'o', 'l', 'b'}

四、 从集合中删除元素

pop( ) 随机删除并返回集合中的一个元素。调用方法为 s.pop( )。

咱们调用一下s.pop()

s={'a','b',1,2,3,4,1}
s2=set('hello')
s.update(s2)
s.pop()
print(s)

得到的结果是:{2, 3, 4, 'l', 'h', 'a', 'e', 'o', 'b'}

再调用一下,得到的结果是:{3, 4, 'o', 'h', 'b', 'e', 'l', 'a'}

如果想知道删除的是哪一个元素,可以使用 result。

s={'a','b',1,2,3,4,1}
s2=set('hello')
s.update(s2)
result=s.pop()
print(result)
print(s)

image.png说明是1被删了

remove( ) 删除集合中的指定元素。

s={'a','b',1,2,3,4,1}
s2=set('hello')
s.update(s2)    # 把s2添加到s集合中s.remove('e')
print(s)

得到的结果是:{1, 2, 3, 4, 'l', 'o', 'h', 'a', 'b'}

clear( )清空集合。

s={'a','b',1,2,3,4,1}
s2=set('hello')
s.update(s2)
s.clear()
print(s)

得到一个空集合:set()

相关文章
|
8天前
|
JavaScript Java 大数据
基于python的网络课程在线学习交流系统
本研究聚焦网络课程在线学习交流系统,从社会、技术、教育三方面探讨其发展背景与意义。系统借助Java、Spring Boot、MySQL、Vue等技术实现,融合云计算、大数据与人工智能,推动教育公平与教学模式创新,具有重要理论价值与实践意义。
|
17天前
|
机器学习/深度学习 数据采集 并行计算
多步预测系列 | LSTM、CNN、Transformer、TCN、串行、并行模型集合研究(Python代码实现)
多步预测系列 | LSTM、CNN、Transformer、TCN、串行、并行模型集合研究(Python代码实现)
184 2
|
5月前
|
安全 数据安全/隐私保护 Python
Python学习的自我理解和想法(27)
本文记录了学习Python第27天的内容,主要介绍了使用Python操作PPTX和PDF的技巧。其中包括通过`python-pptx`库创建PPTX文件的详细步骤,如创建幻灯片对象、选择母版布局、编辑标题与副标题、添加文本框和图片,以及保存文件。此外,还讲解了如何利用`PyPDF2`库为PDF文件加密,涵盖安装库、定义函数、读取文件、设置密码及保存加密文件的过程。文章总结了Python在处理文档时的强大功能,并表达了对读者应用这些技能的期待。
|
3月前
|
算法 IDE 测试技术
python学习需要注意的事项
python学习需要注意的事项
200 57
|
3月前
|
JSON 数据安全/隐私保护 数据格式
拼多多批量下单软件,拼多多无限账号下单软件,python框架仅供学习参考
完整的拼多多自动化下单框架,包含登录、搜索商品、获取商品列表、下单等功能。
|
3月前
|
机器学习/深度学习 数据安全/隐私保护 计算机视觉
过三色刷脸技术,过三色刷脸技术教程,插件过人脸python分享学习
三色刷脸技术是基于RGB三通道分离的人脸特征提取方法,通过分析人脸在不同颜色通道的特征差异
|
3月前
|
监控 数据安全/隐私保护 Python
微信自动抢红包免费版,2025微信抢红包神器,微信红包挂苹果版【python仅供学习】
这个模拟项目包含5个模块:核心监控逻辑、用户界面、配置管理、实用工具和主程序入口
|
6月前
|
Python
Python学习的自我理解和想法(19)
这是一篇关于Python面向对象学习的总结,基于B站千锋教育课程内容编写。主要涵盖三大特性:封装、继承与多态。详细讲解了继承(包括构造函数继承、多继承)及类方法与静态方法的定义、调用及区别。尽管开学后时间有限,但作者仍对所学内容进行了系统梳理,并分享了自己的理解,欢迎指正交流。
|
4月前
|
数据采集 存储 监控
抖音直播间采集提取工具,直播间匿名截流获客软件,Python开发【仅供学习】
这是一套基于Python开发的抖音直播间数据采集与分析系统,包含观众信息获取、弹幕监控及数据存储等功能。代码采用requests、websockets和sqlite3等...
|
5月前
|
存储 搜索推荐 算法
Python学习的自我理解和想法(28)
本文记录了学习Python第28天的内容——冒泡排序。通过B站千锋教育课程学习,非原创代码。文章详细介绍了冒泡排序的起源、概念、工作原理及多种Python实现方式(普通版、进阶版1和进阶版2)。同时分析了其时间复杂度(最坏、最好、平均情况)与空间复杂度,并探讨了实际应用场景(如小规模数据排序、教学示例)及局限性(如效率低下、不适用于高实时性场景)。最后总结了冒泡排序的意义及其对初学者的重要性。

热门文章

最新文章

推荐镜像

更多