00:00
那么我们将在本小节当中为大家讲解一下集合的最后一部分内容,什么内容呢?冰冻集合好了,打开我们的台上,然后新建一个普通的文本文档,我们写上冰冻集合。当然冰冻集合我们依然是集合中讲的啊,并没有单独提出去啊,那什么是冰冻集合呢?那么关于冰冻,大家一听这个词啊,就是冻住了对不对?其实冰冻集合它还有另外一个名称,叫做固定集合啊固定集合。简单的说,这个集合是一旦创建就不可以再修改的集合,一旦创建就不可以进行修改的集合,就不能像我们普通集合一样,可以加可以删,对不对?冰冻集合是绝对不能做到的啊,它一旦创建了就这样的不能再变了,那我们如何创建一个冰冻集合呢?给大家介绍一下啊,创建冰冻集合,如果你想创建一个冰冻集合的话啊,那我们先创建一个什么呢?创建一个空的行不行啊,空的冰冻集合。
01:11
冰冻集合创建我们冰冻集合空的的话需要什么呢?一个变量接受结果等于需要写什么呢?写冰冻集合的一个函数来创建啊,In freez set啊,就这个单词,这样一来的话,你就可以得到一个冰冻集合麦下线cold下限零七。小写零七啊,然后点击OK,然后呢,我们在里边给大家创建一个空的冰冻集合啊,空的冰冻集合来我们写一个变量啊,变量咱就叫它my set行不行,我的集合等于z freez set框框,接下来的话,一个空的冰冻集合就可以创建出来了,那有没有问题呢?我们在这里边打印一下它的类型和值行不行,打印类型和值打印写错了,打印类型和纸在里边print print块。
02:07
啊,打印my set,这是它的值,它的类型呢,我们用type来检测一下,并且打印出来my set,好了,右键运行一下程序,我们看是否可以得到一个冰冻集合,来看见是不是出现了一个冰冻集合,是个空的,什么都没有,他说这个类型看好了,类型就是冰冻集合类型,也就是说我们的冰冻集合是一个存在的类型,但是它并不属于什么呀,六大标准数据类型啊,所以注意啊,冰冻集合是一种数据类型啊,一种数据类型。一种数据类型。一种数据类型,其实我们这个宾动集合和A个都很相似,如果把集合比作是一个,比作一个列表的话,列表的话,那么冰冻集合就是元组,冰冻集合啊,集合就是元组,我相信大家一眼就能看出来他们的一个特征吧,是不是那列表是可以改的,那么元组是不能改的,集合是可以改的,冰冻集合是不能改的啊,所以创建一个冰冻集合就这么写,然后如果我想创建一个具有数据的冰冻集合怎么办呢?比如说我们要创建啊具有数据的冰冻集合,那么在这里边用到的依然是什么呢?
03:26
依然是用到了我们这个first for freez set这个函数啊,变量等于f for z set,套上括号,然后这里放一个容器数据就可以了啊,容器类数据很多学说这这这是创建吗?没错啊,这实际上是将其他的容器类数据转化为冰冻集合。来,我们给大家做个实验,打开我们的文件啊,这是第七个文件。这是创建啊,创建具有数据的冰冻集合。冰冻啊,集合,比如说我们在这里边写上一个my set等于z freez set,套上括号,然后你可以这里放列表,元组字典集合,你随便放啊,我们可以放一个什么呢?列表里边写上我们要放的内容,比如说我要放一个什么啊,冰淇淋是不是冰淇淋是不是,然后呢,再放一个老冰棍啊,老冰棍。
04:23
然后再放一个奶油冰棍,奶油冰棍是不是,然后再放一个小豆冰棍啊,小的时候吃的好像没有卖的了,冰棍好保存一下,那么这个时候我们再次打印my set这个变量啊,MY再次打印这个变量和它的类型啊,我们再打印一次,你就会发现这下来的话,我们又得到了一个新的集合,就是下面这个,你看它是不是也是free set类型里边是什么呀?它的显示格式是这样的格式啊,千万注意,它的显示格式不是一个画框,就是普通集合的格式,那样就区分不开了,所以它是在普通集合最外层加一个freez set的一个操作,那么冰冻集合它的特征我刚刚给大家说过了,我们冰冻集合它能干什么事,来事了是不是不能修改呀?所以看好了冰冻集合不可以修改的冰。
05:14
冰写错了,冰冻集合不可以修改啊,无论是应该不可以操作啊,你无论想删想加都不可以,那么比如说我们试一下集合里边的一个清空集合的操作行不行?我们在学集合的时候,是不是学过可乐呀,是不是,嗯,我们在里边创建一个啊,比如说my set,我的集合啊,等于然后呢,Freez set,然后呢,在这里边你随便放点东西就可以了啊,比如说放点红色,然后逗号啊绿色。然后逗号再放点蓝色啊蓝色好,现在一个冰冻集合就产生了print my set啊my set类型呢,也没什么好说的,肯定也是一个冰冻集合类型,来右键运行一遍。
06:07
大家不会发现有什么问题,现在啊,但是如果我想把这个集合来做清空操作。比如说我这里写了一个my set啊,点C,你看它会有什么提示,右键运行一遍。他会告诉你什么呀,Freezing set,这个根本就不支持这个可乐操作,很多说那我要删除呢,不好意思,也不能啊,你想删除想添加都是做不到的,也就是说冰冻集合它是一个不可以修改的集合,那这样一来的话,大家会觉得那这个集合有啥用啊,是不是所以会对它的一个作用,哎,表示有疑问,冰冻集合它到底该怎么用呢?冰冻集合的作用。冰冻集合的作用啊,我们冰冻集合的作用是为集合操作提供一个不可变的集合一个参考啊,为集合的操作提供一个。
07:06
写错了,叫一个不可以。改变的,不可以改变的,对照集合,就比如说我们做什么呀,交集并集差集补集增,呃,这各种集合的操作的时候呢,你可以是吧,有一个集合是固定不修改的,就是防止别人修改也好,防止别人变也好啊,就这个东西啊,那这就意味着我们的冰冻集合其实和集合很相似啊,它除了不能修改,剩下的跟集合是完全一样的,这句话记住了啊。冰冻集合叫做冰冻集合,除了不能修改之外,其余和集合一样啊,其余和集合一样,集合能登,你操作它也能,比如说。我们在集合中学到了很多的函数,是不是,特别是集合操作函数,最开始这几个函数你就不要看了啊,什么添加呀,删除肯定做不了的是不是,那我要进行一个复制操作,能做到吗?来看一下啊,我们在里边看一下复制操作能不能实现,那在这里边我们刚刚是不是有一个冰冻集合了,你看我想复制一个my set.copy copy。
08:16
耗完框啊,你会发现,诶,这个好像能用啊,没错啊,来看一下result,如果我们对集合冰冻集合进行的是一个操作,是一个复制操作,那么就没有问题,因为冰冻集合咱说不能改呀,没说不能复制啊,你复制又不会影响集合本身对不对,所以你会发现result又得到了一个新的冰冻集合,所以复制操作是可以实现的啊。好了,复制操作写错了,叫复制操作,可以使用啊,可以使用,因为复制并没有修改原金额本身,对不对?那么与这个相对应的,除了复制之外,还有哪些操作是可以实现的呢?来,我们继续来看我们原有集合的函数你就知道了,上面都是改的,你肯定用不了对不对,那么下面就剩下了一个集合运算交集,并集,差集,补集这些东西对不对?那这几个我们能否使用呢?比如说我们这个啊,这叫做差级对不对?我就给大家列出来,就不做详细讲解了啊,还有差级更新update。
09:16
然后呢,还有我们的什么?还有我们的交集,Intersection。CT intersection,还有我们的交级更新intersection下线啊括号,然后还有我们的这个并集UN啊UN然后套上括号,还有我们的update,诶,这是不是都是我们集合操作交级病级补给,还有那个检测是不是超级的sup啊,Super set。还有is subset,然后呢,以及我们这个is joint。和最后的两个sy m me t就是我们的对称差集啊,Di Di r弹框。
10:05
然后呢,还有一个就是对性差距的更新操作,这些函数就是集合里边的什么呀?呃,所有操作相关的对不对?然后update这些函数,我们的叫做冰冻集合都可以使用吗?这个还真不是啊,首先coffee已经确定了可以使用对不对?我们放这摆啊,可以使用,那么对于差级来说可以使用吗?这就要你来思考一个问题,就是我们的操作到底有没有修改到集合本身的就可以了,那在这里边来给大家演示一下,我们在这里边设声明一个及格啊,Color Co color e等于flower z in freez set,然后在里面放上几种颜色行不行,红色。然后呢,自然烟绿色逗号蓝色,然后逗号,然后黄色啊好就这些了,然后再声明一个集合2COLOR2啊,等于第二个集合,我们可以设置为普通集合,比如说我们在这写一个,呃,绿色是格瑞写了,然后青色啊。
11:10
我这么写的。白青色,然后呢,蓝色,然后紫色。逗号啊,PPI,紫色,然后再来一个粉色吧,Pink行不行?好了,那我这两个集合就都存在了,一第一个是冰冻集合,所以注意啊,这个是一个冰冻集合,而下面这个只是一个普通集合。普通集合,那么我们再来看一下Di difference函数能否使用呢?那简单直接color一点,Dice把我们的COLOR2放进去就可以了,那么大家都知道啊,求差集的时候,它是返回一个结果对不对?就计算完之后返回一个结果,我们接收,所以在里边打印一下给大家看看能不能得到结果呢?或者它能不能进行差级运算呢?答案是可以的,因为差级运算它运算之后并没有改变原有集合,所以运算出来是没有问题的,而且大家也看到了运算的结果,差集人积合一相对积和二的差集就是没有什么呀,是不是就没有蓝色呀,那最后叫红绿黄,算出来的结果是一个集合,而且还是一个冰冻集合,因为很多时为什么是个冰冻集合呢?因为它的主体是冰冻集合进行了操作,所以其要注意啊,冰冻集合的操作叫做冰冻集合作为主体的操作。
12:36
错,不是写错,写错了作为主体的操作,操作结果依然是我们的冰冻集合,也就说最后的得到的数据类型到底是一个普通集合还是一个冰冻集合,完全取决到底是冰冻集合进行的操作还是普通集合进行操作,很多说是吗?是的,给大家举一个反向例子啊,我们如果这样玩来result看一下,Result等于COLOR2点,把COLOR1放进去,那么这个时候大家其实也看到了,我是用普通集合进行了差集,只不过用冰冻集合作为了一个参照,对不对?那么这个时候它能得到结果吗?也能啊。
13:15
因为冰冻集合也是集合呀,那么这里边儿大家来看一下这种方式预算的结果能有结果吗?有,但是它的结果是普通集合,你看到了吗?是普通集合啊,所以谁作为主体,结果就是什么样的类型,这是我们集合操作中需要注意的一点啊,那这里普通集合作为主体普通写错了。普通集合作为主写错了,作为主体的操作结果依然是普通结合,所以这个很少人有人知道啊,或者很少有人去测试过,所以大家要注意一下,然后呢,那这样我们也知道了,Difference是不是可以使用的是不是,所以这里边儿确实没有问题啊,Difference是可以使用的,那么difference update可以使用吗?
14:02
答案是不可以,很多时候为什么呀,很简单,因为如果是Di difference下线update的话,Up data,那么一定是什么呀,一定是要更新第一个变量的,是不是把这个给大家,把这给大家注释一下啊,注释一下我们内容就不变了,依然使用上面两个就可以了啊,如果是difference update的话,那么在这里进行的操作你会发现如果是color一点difference update Di上线upte的话,那么这里边放的应该是COLOR2,对不对?按照这种预算结果的话,它俩集合一和集合二求出的结果也就是一个新的集合要重新复制给我们的它二,一,那么这个是没法做到的,因为它不允许修改,所以你看啊,他根本就不让你运行的,看见没有啊,冰冻机格根本就不支持这个update方法,明白了吗?所以啊,你这样做是不行的。当然,很多市民也有疑问说。
15:03
反过来行不行,比如说我不这么写啊,我不这么写,这里边明显是冰冻即可作为主体的,对不对,好多说那我这样我看了二啊DRDR分为re,然后。啊,这样color里difference下限update啊,我把这里边放color一行不行,那这个是没有问题的,因为你要考虑到,如果说这是什么呀,COLOR2点的话,实际上是普通集合的操作,而在这里边我们的COLOR1这个冰冻集合只是作为参照是不是,所以它是不会错误的啊,而且可以使用,你可以看。嗯,没有任何变化,然后如果你想看结果的话,确实也是可以使用的啊,看COLOR2COLOR也会得到结果,重新复制是没有问题啊,所以注意啊,对于update而言,我们如果使用冰冻集合作为主体是不可以使用的,冰冻集合作为主叫作为主体是不可以使用的。
16:00
是不可以使用的,不可以使用的在这里边哈,我们依然认为它不可以使用。不可以使用,因为我们这里边的所有可以使用依然都是以冰冻集合作为主体的,你如果是其他普通集合作为主体,冰冻集合作为参考的话,那是普通集合函数,而不是什么呀冰冻集合,所以呢,大家可以得出一个结论啊,所有的正常操作啊,像我们的啊,复制啊,差集啊,交集定级啊,都是可以用的,但是什么呢?所有带update的都不可以使用啊,作为主体来说都不可以使用。啊,当然很多说,那as subset aset as destroy可不可以用呢?答案是可以用啊,这个我就不给大家解释了,因为这几个东西是不是根本就反馈是布尔值不会改变原有集合,所以是可以用的,对于对称差距而言也是可以使用的,更新对差距依然不可以使用,所以这么来看的话,大家可以总结出一个规律啊,这并冻集合其实就是一个集合,集合能用的函数呢,它绝大数都能用,只不过是什么呀,你如果是要修改操作集合这个主体的话,那这个函数我是不能用的啊,没问题了吧,好。
17:15
这就是我们冰冻集合的一个内容啊,大家对于冰冻集合需要进行一个了解级别就可以了,好吧,因为冰冻集合用的相对来说还是比较少的,好了,关于集合的章节我们到此就结束了,感谢大家收看啊,再见。
我来说两句