从零开始的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。
本节完