当前课程知识点:Python 交互式程序设计导论 >  第7周 >  A 课程视频(类进阶及文件操作) >  集合

返回《Python 交互式程序设计导论》慕课在线视频课程列表

集合在线视频

集合

下一节:文件操作

返回《Python 交互式程序设计导论》慕课在线视频列表

集合课程教案、知识点、字幕

今天我将给大家介绍一些集合的操作

前面我们已经学了字符串、列表等数据类型

今天,我们给大家介绍的集合不同字符串和列表

集合当中元素要求是互异的和无序的

每次我们对集合的输出或许都是无序的

好,下面开始我们今天的内容

到目前为止,我们已经学了几种

可以存储一组数据元素的数据类型

第一种是列表,那就是list

那么作为list,它是一种有序的序列

它的定义方式我们可以直接用a=list()

那么它可以定义一个空的列表

还可以用a=[]来定义一个列表

我们也可以直接对列表进行元素的赋值

那么元素之间用“,”分隔开

因为列表是有序的

第二类是我们学的字典

字典是一种键和值的一种映射

我们定义字典我们可以直接用b=dict()去定义一个空的字典

也可以用b={}去定义一个空的字典

一样,我们也可以对字典进行键和值的直接赋值

那么今天我们要讲的是集合

集合比较特殊,集合是不重复的无序集合

也就是里面的元素第一没有顺序,第二相互之间不重复

那么集合的定义和列表、字典类似

我们用set()去定义一个空的集合

我们也可以直接对集合进行赋值

因为集合是不重复的无序集合

所以我们写集合c={1,3,4}或者集合c={1,4,3}或者{3,1,4}

都表示相同的集合

即使我们在集合中将某一个元素重复写多次

好,下面我们看一看如何在python中去使用集合

我们就我们这门python课程建立我们的python 主讲老师这样一个授课的集合

那么目前我们这门课程里面有四位主讲老师

张太红老师、白涛老师、杨树媛老师,还有就是我寇晓斌

好,我们的老师集合建立好了

我们对这个老师集合进行一个输出

我们来运行一下

那么这是我们的运行结果

也就是我们对这个集合进行了一个输出

注意看,因为我们说集合是一个无序

那我们输出的我们在定义的时候我们说张太红老师是第一个

白涛是第二个,杨树媛老师是第三个,寇晓斌是第四个

但在我们的输出过程中是白涛、杨树媛、张太红、寇晓斌

那么在python当中,每一次的输出结果可能都不一样

我们可以再次点击运行

大家注意观察下面的结果

看,每次的运行结果对于集合来说它的输出都是不同的

好,这就体现到我们集合的无序性

好,那么在我们这四位老师当中

我们的张太红老师不仅讲授python

那么他还讲授其他的课程,比如说Ubase、数据库等

好了,那么我们对这个集合进行一个重新的定义

也就是说我们这四位老师

也就是说,他可以讲授多门课程

我们在这个集合中,对张太红老师进行了多次的赋值

好,我们再把它输出一下

我们看一看结果,如果大家看不清

我们在这里加一个注释

也就是说,不论我们集合中对某一个元素输多少次

那么在最终,集合只认一个元素

也就是说,体现到我们集合的互异性

不允许我们元素的相互重复

好,那我们来看一看我们的第一个teachers这个集合

和我们的teachers_1这个集合是否相等

我们可以这样,我们可以判断两个集合是否相等

我们用是否==这个逻辑运算符

好,我们运行一下

结果显示是True,也就是说这两个集合元素是相同的

好,那我们这门课程可能在进行过程中又需要增加一些老师

好,比如我们对集合的添加

我们先把集合选中以后用方法的调用.

那么大家可以看到这里面有一个add

也就是说这是我们的一个添加集合元素的一个方法

好,比如说杨抒老师

好,我们再对这个teachers这个集合进行一个输出

那么这时候我们就加进来了一个杨抒老师

我们可以通过add这个方法对集合进行元素的添加

那么如果我们添加已经存在的元素会有什么结果呢

比如说寇晓斌已经存在的这个教师集合中

我们再次添加有什么结果,我们来运行一下

好,我们也对它进行输出

我们可以看到,如果对已经有的元素再次进行添加

那么集合不会有任何的反应(变化)

好,那么这是我们对集合中进行元素的添加

如果我们想将集合中的所有元素都打印出来或者进行输出

那么我们可以这样,for,我们用for

用这个方法,就是for进行循环,运行一下

好,我们对老师进行了输出

第一位白涛,第二位寇晓斌,第三位杨树媛, 第四位张太红,第五位杨抒

因为每次的运行结果可能都会不同,大家可以看到

那么这是我们对集合中的元素进行逐一的访问输出

那么我们能否对集合中的元素进行删除呢

我们说,是可以的

我们用方法看一看,这里面有一个remove

好,这里面我们已经有了五位老师

我们将寇晓斌删除,好,我们再输出一次

点击运行,那么本来我们这里面是有五位老师

然后将寇晓斌删除,这时候我们可以看到就没有了寇晓斌这个名字

那么如果对已经没有的元素再次进行删除呢

我们来运行一下,所以,这上面已经提示出来有错误

teachers.remove("寇晓斌"),键值错误

就是在这个里面,没有寇晓斌这个元素了

也就是说你再次删除的时候会有错误提示

好,我们将这一行代码注释起来

那么在注释过程中我们怎么知道我删除的元素是否在我的集合当中

我可以用

判断

我们可以用这个“寇晓斌 in teachers”进行判断

因为我们已经将寇晓斌从teachers中删除了

那么我们来看一看它的结果

结果是false,也就是这个里面没有

好,我们吧这个再换一下

那么不是寇晓斌

如果是张太红老师呢?

我们来运行一下

那么也就是说我们判断结果是张太红老师是在我们的集合当中

这个地方显示是在的

那么这是我们队集合的一些基本操作

怎么样增加元素,怎么样删除元素

我们再来看第二个集合的操作

我们新的一届政府上来后改革力度非常大

为了解决城市的雾霾和城市的交通压力

各个单位也对自己单位的公车进行了一些管理

比如说我们在这里给出了某个单位的所有公车的车牌号

我们现在的建议就是

如果今天是单号,所有单号车牌的车出行,双号车牌的车限行

如果今天是双号,所有双号车牌的车出行,单号车牌的车限行

好,根据这一想法,在下面我们建立了一个简单的函数

首先,我们传入了一个车牌号的集合

然后这是我们限行的条件

如果传入0就表示双号限行,那么今天就是一个单号

如果传入一个1表示单号限行,今天是双号

首先我们给了一个限制出行的车牌号集合

我们不能对已有的车牌号集合进行直接删除操作

这样会错误的,不必要的麻烦

那我们先建立一个将要限制的车牌号的集合

我们对传入的车牌号集合进行逐一的访问

因为我们所有的车牌号末尾都是数字结尾

那么每个集合中的元素都是字符串

我们可以根据字符串索引,-1表示最后一位我们将它提取出来

然后将它转换成整型

用这个整型对2取余

如果余数等于0,那么就表示双号限行

如果余数等于1,那么就表示单号限行

那么根据限行的条件,我把限行的车牌号加入到 我的这个remove_set里面

那么最后一步我们是对车牌号这个集合进行更新

那么这个difference_update方法就是说将已有的车牌号集合中

限行的那些车号从这个车牌号中删掉

然后对这个集合进行一个更新

那么有关他的方法大家要去参考我们教材后的关于集合的一些说明

好了,我们在这里调用get_rid_of函数, 然后传入我们的car_number和1

那么就是说我们今天对单号进行限行

然后我们最后对这个集合进行一个输出显示

好,我们来运行一下

好,那么在我这一堆车牌号中,我们最后只显示了偶数结尾的车牌号

那么如果我们把它改为0,也就是我们限行双号

我们再运行一下

那么在这里我们只显示了奇数号的车牌号

好,这是我们对集合的一些简单操作

希望对本周的项目,对大家有所帮助

好,今天我们的内容就到这儿,我们下次课再见

Python 交互式程序设计导论课程列表:

第0周

-课程简介

--课程简介

-A 课程视频(算数操作符及表达式)

--绪论

--Python交互式解释器使用方法

--PyCharm集成开发环境介绍

--算数操作符及表达式

-B 课程视频(变量及赋值)

--变量

--项目提交

--“我喜欢Python”热身小项目

-C 辅助视频(计算机结构、Python开发环境安装)

--Windows平台安装Python开发环境

--Mac平台安装Python开发环境

-D 辅助视频(如何提交项目)

--项目提交

-第0周--小测验

-本周项目:"我喜欢Python"

--项目发布、完成、提交及评分流程

--游戏说明

--程序说明

--编码步骤

--评分标准

--项目模板

--项目提交

第1周

-A 课程视频(函数)

--函数

--其它操作符

--随机函数

-B 课程视频(逻辑及表达式)

--逻辑值和比较

--条件

--编程技巧

--“老虎杠子鸡虫”游戏

-第1周--小测验

-本周项目:“老虎杠子鸡虫”游戏

--游戏说明

--程序说明

--编码步骤

--评分标准

--项目模板

第2周

-A 课程视频(Python交互式应用)

--事件驱动编程

--事件可视化跟踪执行

--SimpleGUITk

--按钮

-B 课程视频(输入框、全局变量)

--输入框

--局部变量和全局变量

--编程技巧

--“猫咪藏在哪个房间”游戏

-第2周--小测验A

-第2周--小测验B

-本周项目:猫咪藏在哪个房间

--游戏说明

--程序说明

--编码步骤

--评分标准

--项目模板

第3周

-A 课程视频(画布绘图)

--画布和图形绘制

--字符串处理

--绘图和计时器可视化跟踪执行

--图片和音效

-B 课程视频(计时器)

--计时器

--交互式绘图

--“神奇时钟”游戏

--编程技巧

-第3周--小测验A

-第3周--小测验B

-本周项目:“神奇时钟”

--游戏说明

--程序说明

--编码步骤

--评分标准

--项目模板

第4周

-A 课程视频(列表)

--列表

--键盘输入

--列表及变化可视化跟踪执行

--碰撞和反射

-B 课程视频(键盘控制)

--速度控制

--运动

--编程技巧

--“桌上冰球”游戏

-第4周--小测验A

-第4周--小测验B

-本周项目:“桌上冰球”游戏

--游戏说明

--程序说明

--编码步骤

--评分标准

--项目模板

第5周

-A 课程视频(鼠标输入、列表进阶)

--鼠标输入

--Video

--Video

--Video

-B 课程视频(字典和图片)

--Video

--Video

--Video

--Video

-第5周--小测验A

-第5周--小测验B

-本周项目:“世界杯八强连连看”

--游戏说明

--程序说明

--编码步骤

--评分标准

--项目模板

第6周

-A 课程视频(类)

--面向对象编程(类和对象入门)

--面向对象编程(类和对象进阶)

--对象可视化跟踪执行

--华容道中的类

-B 课程视频(平铺图片)

--平铺图片

--理解对象

--编程技巧

--“华容道”游戏

-第6周--小测验A

-第6周--小测验B

-本周项目:“华容道”游戏

--游戏说明

--程序说明

--编码步骤

--评分标准

--项目模板

第7周

-A 课程视频(类进阶及文件操作)

--集合

--文件操作

--文字块类

--处理停止的文字块

-B 课程视频(游戏状态控制)

--游戏记分规则

--游戏结束的条件及处理

--编程技巧

--“决战三字经”游戏

-第7周--小测验A

-第7周--小测验B

-本周项目:决战三字经

--游戏说明

--程序说明

--编程步骤

--评分标准

--项目模板

第8周

-A、课程视屏(精灵集合)

--Video

--精灵类

--战士类

--编程技巧

-B、课程视屏(动画)

--精灵碰撞

--精灵动画

--编程技巧

--保卫家园游戏

-第8周--小测验

-本周项目:守卫家园

--游戏说明

--程序说明

--编程步骤

--评分标准

--项目模板

集合笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。