当前位置: 首页 > news >正文

从零开始的python学习(四)P54+P55+P56+P57+P58

本文章记录观看B站python教程学习笔记和实践感悟,视频链接:【花了2万多买的Python教程全套,现在分享给大家,入门到精通(Python全栈开发教程)】 https://www.bilibili.com/video/BV1wD4y1o7AS/?p=6&share_source=copy_web&vd_source=404581381724503685cb98601d6706fb

上节课学习了字典的创建与删除,字典元素的访问及遍历,字典操作的相关方法,字典生成式,本节课记录的知识点有集合的创建与删除,集合的操作符,集合的操作方法及集合的遍历,Python3.11的新特性,本章总结。

1.集合的创建与删除

注意,上集合是无序不重复的元素序列,它跟列表和字典一样都是可变数字类型。一节中我们学习的字典,它直接创建是用{},也就是

d={key1:value1,key2:value2,......}

集合也是用{}

一、集合两种创建形式

一种是

s={el1,el2,el3,...}

 一种是用set()

s=set(可迭代对象)

实验如下: 

#集合的创建与删除
print('----直接用{}创建集合----')
s={10,20,30,40}
print(s)#使用set()创建集合
print('----使用set()创建集合----')
s=set() #创建了一个空集合,空集合的布尔值为False
print(s)
s= {} #考虑集合和字典的异同点,直接用{}创建会创建出一个字典
print(s,type(s)) #dict
print('----使用set(字符串)创建集合----')
s=set('helloworld')
print(s) #结果自动把重复的元素归并,而且无序排布
print('----使用set(一个列表)创建集合----')
s2=set([10,20,30])
print(s2) #发现结果变成了s2这个集合为{10,20,30}
print('----使用set(range())创建集合----')
s3=set(range(1,10))
print(s3) #发现s3这个集合为{1,2,3,4,5,6,7,8,9}#集合属于序列的一种
print('----对集合使用序列的方法----')
print('max:',max(s3)) #求最大值
print('min:',min(s3)) #求最小值
print('len:',len(s3)) #求长度print('9在集合中存在吗?',(9 in s3))
print('9在集合中不存在吗?',(9 not in s3))

结果:

二、集合元素只能是不可变数据类型

print('----佐证:集合中只能存储不可变数据类型----')
s={[10,20],[30,40]} #我们尝试存储两个列表
print(s) #报错TypeError: unhashable type: 'list'

结果:

三、集合的删除

del s3
print(s3)

结果报错:集合不存在

2.集合的操作符

稍微注意一下,补集是两个集合中不相交的部分,实验代码 如下:

A={10,20,30,40,50}
B={30,50,88,76,20}
#交集操作
print(A&B)
#并集操作
print(A|B)
#差集操作
print(A-B)
#补集操作,得到的是两个集合中不相交的部分
print(A^B)

结果如下:

3.集合的操作方法及集合的遍历

下面是这三个操作的实验:

s={10,20,30}
#向集合中添加元素(add操作)
s.add(100)
print(s)
#删除元素(remove操作)
s.remove(20)
print(s)#清空元素(clear操作)
s.clear(20)
print(s) #因为s被清空了,所以会报错s不存在

结果:

下面是集合遍历操作和生成式的实验:

#保留上面的集合的操作代码
s={10,20,30}
#向集合中添加元素(add操作)
s.add(100)
print(s)
#删除元素(remove操作)
s.remove(20)
print(s)#集合的遍历操作
for item in s:print(item)
#第二种遍历方式,用enumerate()函数,集合是没有索引的,这种方式可以遍历出序号来
for index,item in enumerate(s):print(index,'-->',item)  #注意这里的index是序号,它默认从0开始#集合生成式
print('-----生成有着1到9元素的集合-----')
s={i for i in range(1,10)}
print(s)
print('-----生成有着1到9的奇数的集合-----')
s={i for i in range(1,10) if i%2==1} #当i除以2的余数是1时,则执行前面这句话:把i放集合s中,i是来自于遍历1到9的数
print(s)

结果:

下面总结列表,元组,字典,集合的区别:

4.Python3.11新特性 

这一部分博主只有Python3.8,以后再补充吧-_-||

5.章节总结

下面是习题:

注意append是指在原来的列表后面加上元素,而第三行的元素很明显也是一个列表,这样共有4个元素,选择B

这是一个列表类型,因此可以直接选D.可以分析一下,遍历“想念”,选择其中一个分别跟“家人”组词,顺序是从左到右,先“想”跟“家”和“人”组词,然后是“念”。

lst.insert(2,20)意思就是在表格中把索引为(也就是序列号)为2的位置上换成20,注意序列号下标从0开始,然后print一下,得到的是把5换成20,答案是C

虽然reverse的意思确实是倒着排序,但是reverse是返回值是None,所以选C

虽然t(10)是一个元组,但是如果不加逗号,识别出来的结果就不是元组,而是10本身的数据类型,所以选A。

本节完

 


http://www.mrgr.cn/news/69513.html

相关文章:

  • 研究生如何远控实验室电脑?远程办公功能使用教程
  • JS爬虫实战之TikTok_Shop验证码
  • WebRTC项目一对一视频
  • [OpenGL]使用OpenGL实现硬阴影效果
  • WEB攻防-通用漏洞SQL注入sqlmapOracleMongodbDB2等
  • 力扣 二叉树的直径-543
  • 模型训练中GPU利用率低?
  • python编写学生管理系统
  • 树莓派安装FreeSWITCH
  • 背包问题(三)
  • STM32F103C8T6单片机
  • 边缘计算在智能交通系统中的应用
  • 科研绘图系列:R语言组合多个不同图形(violin density barplot heatmap)
  • Python毕业设计选题:基于django+vue的荣誉证书管理系统
  • 数据分析:16s差异分析DESeq2 | Corncob | MaAsLin2 | ALDEx2
  • Windows下Python环境安装GDAL
  • Windows上安装与使用 Jupyter Notebook
  • Android Studio 将项目打包成apk文件
  • Discord无法接受邀请?常见原因详解
  • 写一个记录函数执行时间的装饰器
  • svgicon大小问题(简单记录
  • 【线性代数\矩阵论】矩阵逆引理证明、应用
  • 力扣 多数元素
  • 深度学习在图像识别中的应用
  • 用Java实现samza转换成flink
  • 使用多种机器学习调参模型进行二分类建模的全流程,代做分析辅导