00:03
大家好,我是小毕,前面三节课我们分别讲了三大数据结构,物料容器是什么,如何创建。这是第一讲的内容,好,第二讲我们讲了三大数据结构是如何深化和提取的。好,第三讲,我讲到三大数据结构之间是如何相互转换的,如果还没有看这三节内容的同学,我建议先把这三节内容反复的。观看,然后呢,反复的练习。因为这三节的内容相当相当的重要,在整个power power和M函数中是贯穿始终的。如果你这三节内容理解不了,那么在实战中碰到了许多问题,你的佛法迎刃而解。那这一集啊,我接着给大家讲,第四讲三大容器之间的合并与扩展,三大数据结构,或者也叫容器。
01:13
是如何合并与扩展的,首先呢,我们来看list的合并与扩展啊,我们先看第一大部分合并,合并,比如说我现在这里边儿有这样一个。二三,然后有这样一个例子,然后呢,我还有另外一个例子,比如说零。四五,然后呢,我想把我想把这两个list的元素合并到一块去,把这两个例特征元素合并到一起。
02:09
比如012。345哎这样的样子,那这个我们如何做呢?首先啊,连接两个合并,或者连接两个两个或者以上以上的list的时候,我们可以使用。连字符啊,连接符这个,或者使用list特标combine函数,比如说我们啊,我们回到这个快中来。
03:01
我先啊,我先写第一个,比如说123,哎,这是一个list对不对,然后呢,我还要一个list是045,那么我这时我可以写一个连字啊连接符,然后后边再把另外一个list list给它连接上,比如说045。对吧,然后呢,它就变成了一个,变成了一个,如果说只单单的写一个的话。那它这样的,诶给它连上,它就是这样的这个对吧,所以这是我们list第一个啊,把两个list或者说两个以上的list连到一块去,当然这个我们也还可以写成一个list.come。这个,然后呢,把这里边儿诶放两个元素对不对。为什么?哎,他是报错了,为什么他说二参数传传递到了一个函数跟函数,因为一啊,这个说人话就是。
04:11
List叫combine,只有一个参数,并且它的参数是一个list,所以我们需要把这两个list给它打包成一个list。诶,你看对不对。啊,我们先把它打包一下啊,打包一下看打包一下的话,它本来是一个list list里边有两个list元素,然后呢,假如这两个list元素合并的时候呢,我们去需要的是list there combine函数啊,Combine合并对不对,诶就把它合并出来了。然后呢,我们在这写一下list的combine函数,是将多个list元素合并成一个list。
05:12
啊,其语法呢,就是list.combine。只有一个参数,那就是一个列表啊,一个列表对吧,这是list的合并啊,List合并,那我那么在这个里边呢,其实我们经常用到,经常用到,比如说现在我们构建一个list list里边有两个元素,一个是123的这个list,然后呢,还有一个是045的list,比如说我再写一个。789的一个元素啊,那这个时候呢,你看有三个list对不对,三个list组成了一个list啊,一整个list,这三个list分别啊,都是这个list的一个元素,所以合并的时候直接。
06:07
可套上list.combine,或者我们中间给它写把这个逗号啊。哎,这样形对调,我们刚才说了,连接符和list的combine是一样的啊,是一样的。这是list的一个合并啊,List的合并,然后呢,我们接着看con的合并。和对啊一样的,你看到比如说。在这里边定义是先定义一个record对不对?Record的定义方法创建的方法,若A等于一,逗号B等于二。然后呢,就我们就构建了一个看对不对,你看B和一,假如说我还有一个C和D啊,C和D同样的,我可以用连接符给它连接上对不对,比如说C等于三,D等于四对吧?诶来看一下是不是把它连接上了,那比如说我再写一个啊,再写个什么呢。
07:17
再写一个E等于五,F等于六对吧,这个。使用连接符呢,我们就可以把多个record给它连接起来,对不对,连接起来,连接起来,那还有一种连接的方法啊,我们可以使用recon.combine,我们先看一下这个函数点,Combine这个函数呢。啊,这个函数也是只有一个参数,你看它的语法是这样的,说record list啊,就是record,它返回的结果是一个抗对不对,然后呢,我们写一下com函数啊,这个这个里边的第一个参数,它是列列表啊,它的类型是呃,List对不对,然后呢,返回的结果呢是was the,看啊这个怎么怎么理解啊,怎么理解。
08:23
啊怎么理解,比如说看吧,我们这里边呢,哎,一个人靠着两个人看的和三个人看的,全部把它连接起来了,啊连接起来,假如说我们要把它给写成呃康的点combine。啊,然后呢。逗号对不对啊,大家说这样写的,这样的写法是正确的吗?啊,我们来看一下结果对不对,跟list.combine啊,它的这个提示和错误是一样的,这是为什么?
09:10
啊,我们刚才说了list,呃,Combine里边只有一个参数对不对,你看只有一个参数啊,只有一个参数对不对,那刚才我们在看record里边的时候啊,语法提示也是说只只需要一个参数,这个参数。这个参数是一个list的类型啊,List类型大家可以看,现在有两个逗号对不对,两个逗号,然后呢,两个逗号三倍list,呃三个list呃三个月看对不对,我们只要它变成一个list,那毫毫无疑问这个它那外表再套一个打括号,它就变成了这样的对吧,它就变成这样,它变成了一个参数啊,就把它合并起来了,就是把它合并起来了,然后合并完了它结果也是个con啊,那我们来单独看一下这个。
10:07
你看,当我们在大括号里边啊,写了三对list的时候呢,每一个list都每一个account啊,这大括号里边写了三倍con对不对三个con,然后两个逗号分割开来,对这三个con相当于这个list,也就外边大括号里边这个list的三个元素,对不对三个元素。所以此时呢,它是一个整体,我们只需要使用啊reco.combine为什么使用reco.combine而不使用list.combine,因为你看这个列表里边的元素是recont啊,所以我们选用对应的。这个函数record.combine record.combine就行了啊。这是看的,那我们再看一下table啊,Table里边呢,同样的,比如说这里边我现在有这边现在有一班二班三班啊这三个。
11:15
比如说有一班二班三班这三三张表对不对,或者也叫三个查询,我想把它这个写这个合并一下对不对,那这个时候呢,我们可以直接使用连字符,比如说一般。对吧,然后连上一个二班,然后连接上一个三班,你看这样的写法正确吗?哎,完全正确,并且呢,我们在合并的时候呢,它会智能的去对应他的标题,比如说一班里边的姓名和班级对应的是二班里边的姓名和班级啊,那如果说我把一班里边这个成绩给他改成语文成绩,他会怎么样啊,他会怎么样?
12:02
啊,这个时候呢,它会多出一个乙望成这一列啊,在一班里边有值,但是在二班和三班的时候,它还没有值啊,我们看一下结果对不对,多出来一个语文成绩在一班有值,在二班和三班里边是没有值,并且这成绩里边。啊,在一班里边是没有值的,所以它会这个一一对应上去啊,一一对应上去。这时我们把这个截出来。这是什么?Table的合并对吧,Table的合并啊,然后呢。啊,然后呢,呃,我们再来看啊,接着看,那这个连接符我们也说了,可以给它这个,嗯,写成table combine对不对,Table combine,那我们直接可以写table combine。
13:10
跟开一样。然后呢,把里边的这个换成逗号对不对,换成逗号,哎,我们来看一看啊,看一下这个公式能能否返回正确的结果,哎,不行,为什么他说三参数传递到一个函数啊,跟函数应该介于一和二之间啊,这个说人话呢,就是t come这个。啊,这个函数呢。他。有两个参数啊,现在呢,你看三个参数传递到了一个函数,你看里边有三个参数啊,这是不允许的,那我们来看一下这个函数的一个语法。看他说返回合并表什么什么啊,这个说不说文化的我就不说了啊,大体的意思说的就是说将几个表或几个查询这个合并起来,对吧,合并起来然后呢,第一个表是一个tables啊,这个tables。
14:15
看它的语法,Tables is list啊,也就是说所有的table是一个list对不对?第二个参数是optional columns as any啊,也就是列是一个可选参数,列名是一个可选参数对不对?啊,那我们来写一下对不对,把刚才的粘上,然后呢,他说是一个list,那我就把这三个给它括起来乘成看一下,诶可以是不是它成功了啊,这个列名第二个参数啊,一般情况下我们不用去考虑它,因为大多数情况下,我们的表都是带有这个列的啊,带有列名的对不对,所以我们不用去考虑它啊,只记住这个型号,同样的我们把它拆分一下啊,先把这个里边删掉啊,我们在list里边写了三个查询的名称啊,为什么,为什么有的同学啊为同有的同学会说为什么你这里边啊没有写引号,直接就可以这个引用这个查询的名称呢,我们引用查询名称的时候,不写任何的引号啊,不写任何的引号,直接写它的名儿就行啊,写它的名儿就行,当我们把这三个表装在一个list的时候呢,那装到一个list里边呢,你会发现。
15:32
这个list里边有三个元素,每个元素都是一个table,对不对?所以我们要对table进行合并的时候,那肯定是选用table combine啊,而不是list.combine如果说。如果说我们把它再。写成这样啊,这定,那这个时候呢,我们就使用使用的是list combine,为什么?因为它这两个列表啊,这两个列表都是list,合并起来的时候肯定用list combine,我们只是合并list,但是呢,现在呢,我们要合并的是什么?我们要合并的是每个list里边的元素啊,这个元素是推,所以把它合成表的时候呢,我们就需要。
16:20
Table come,对不对combine啊。这是我们table,这个table.combine以及这个table啊,三大容器里边最重要的一个table的合并啊合并然后呢,紧接着啊,我们再看另外一个例子啊,看另外一个例子。啊,我们接着看,哎,不对,第二部分对不对,我们看第二部分扩展。扩展,比如说我现在把这个部分给他删掉诶。
17:06
这个暂时先留着啊,然后换上一个在list里边。嗯,我们想一个办法啊。啊,或者这样吧,我们直接在一班里边做啊,呃,比如说我们现在添加一个新力啊。啊,它加一个星列在这个里边呢,写一个一冒号三啊呃,这个运算符2.3对不对,比如说名称的话,随便写一个写一个A吧。啊,你看现在呢,每每一行里边都是一个list a列里边的每一行都是一个list,这个list里边呢,它有一个固定的这个列表的元素叫123啊123好,你看这一列的右上角呢,它有一个按钮,这个按钮叫扩展按钮,我们点一下他说扩展到新行啊,扩展到新行还有个提取值啊,我们不管提取值是什么,这点我们只看扩展到新行,假如我现在把这个list子项展开啊,我点一下扩展到新行的时候。
18:22
你会发现。对不对,List这个是扩展的时候呢,它是向啊纵向对不对,纵向,哎横向还是纵向呢?是是纵向对不吧?是纵向这个方向上啊展开的,你看123把前边的这个一八的这88块这个成绩给重复了三次,对不对,重复了三次,同样的第二个也是一样啊,每一行都重复了三次,对不对,每一行都重复了三次,那一行都重复了三次,那我们可以发现就是list在表中扩展的时候是。
19:06
啊,垂直方向,垂直方向展开的啊,垂直方向展开的对不对。啊,这个一定要注意啊,这个一定要注意,呃,是垂直方向展开的。啊,是垂直方向展开的,呃,比如说。啊,比如说我现在。添加一个令啊,添加一个列。这家医院呢,我把这个姓名里边的1234给它提取出来,对不对,那我们直接写成什么了。Text的N,然后姓名里边取一位,也就是相当于这个right函数对不对,然后呢,再把它转化成数值。
20:00
啊,转化成数值,比如说我这个叫次数吧。然后这是一个次数对不对。我现在要干点什么事呢,比如说。这个招三一啊,我对这一行的数据重复一次对不对,这个重复两次,重复三次,重复四次,那这时候呢,也就是说我对它重复四行对不对,添加1234啊,下边加四行对不对?然后张三三的时候,把这条数据下边再重复三条啊,重复三条,那这时候我们可以这么摆啊,在自定义列里边,诶是不是啊,这是一个空的list对不对?两呃一一个大括号里边啥也没有,现在我想让他重复啊,重复几次呢?按照我们指定的这个次数来重复叭,如说1234对不对。这个时候呢啊,我可以怎么写呢?A我写写个一啊,在这写个一啊对吧,这个一是竖直型的啊两个点对对两个点表示它的这个列列表的一个方向啊列表的这个相当于一到是什一到什么什么啊,这两个点是一个运算符,比以现在我在在这里边双击这个次数啊,所以现在比要拿张三一来说,一到一是不是重,这是不是一个列到啊一,然后一到二的时候,它两个值一二,一到三的时候有三个值123对不对,往确定没起看一下。
21:35
是不是只有112,然后123124,然后呢,我们点扩展按钮扩展到新行,你看是不是重复了一次,重复两次,然后这是第一次第二次第三次第一次第二次第三次第四次对吧?啊这是我们重复数据。用到的是这个list的垂直方向扩展的一个知识点,对吧?啊,垂直方向扩展的一个知识点,然后呢,比如说我再复制一个啊,我们来接着来看concon啊,它是有标题对不对,还有一个对应的值啊,还有个对应的值。
22:14
啊,还有个对应的值,呃,比如说我现在要干一个什么事啊,我在这里边给它添加一个自定义列,对不对,然后我们写一个。Record,比如说A等于五对不对,然后B等于六啊,它会在每一行呢添加啊,每一行添加一个值,Record里边都是A等于五,B等于六的一个record,这个时候呢,我们点击扩展按钮的时候啊。比如说这里边使用原石六苗作为前缀勾选调不要弹啊,然后我们看一下扩展一下。A扩展的时候呢,你看A和B它都是横向打开了,对不对啊,比如说这一行里边,哎无这个,也就是说这个在这个看里边,A等于五和B等于六啊,它都改成了这个两列,这个两列啊两列。
23:13
并且要,并且他也没有任何的重复,对不对,没有任何的重复啊。所以我们在这个里边写抗在表中扩展的时候是水平方向展开的啊,水平方向展开的这个很有用啊,这个很有用。是垂直方向展开的,是水平方向展开的,对吧,这个很有用。呃,举个例子,比如说我现在要把姓名里边的这个张三和这个1234给它拆开,比如说我添加一列对不对,KK,然后呢。
24:02
比如说我我新建一个对不对,姓名。SIM等于什么,比如说这里边儿呢,我现在啊,我现在给大家直接这样写吧,我们先取一下text stand对不对,因为它啊,这个里边是个特例啊,这个姓名里边对不对,它前边都是张三两位的啊,所以我取了两位对不对,然后呢编号。等于。他是,嗯。然后姓名里边取一位啊,Pass start,这个相当于left函数啊,这个里这个and呢,相当于这个right函数,一个左取一个右取取两位,一个右取取一位啊我们看一下每个里边A张三一对不对,这个时候我们扩展的时候啊,它会向水平方向扩展,比如说我点击确定是不是看水平方向扩展啊,如果是list的话啊,如果是list,它会向垂直方向展开对不对,垂直方向展开。
25:14
啊,向垂直方向展开,这是呃,看那接下来我们再接着看一个啊,这个table的展开啊,Table的展开。比如说这里吧。啊,这里。然后我这是个list,对不对,我把这个list给他。铺成一个table形式,Table from those就行。对不对。诶,他说他说什么啊,缺少一个标题对不对,比如说我随便给个标题交易吧。嗯,为什么?
26:06
啊。啊,他说为什么无法将table转化为list啊?问题不大,问题不大,我们这诶哪呢。这是吧。然后呢,我们到到表看一下啊。啊,这是假如说这是farm list就合适了,我们写成了farm Rose,这个是有问题的,对不对,你看每个里边是一个table对不对,每个里边是一个table,然后呢,我现在想把它扩展,扩展的时候它是不是就会合并了,对吧?扩展的时候就会合并了,那我点一下扩展看一下啊。所有的这个都选上了,对不对,诶你会发现没所有的列表是向右对不对。
27:02
向右。扩展,然后呢,在行的方向呢,它是类似有一个合并的功能,对对吧,类似一个合并的功能。这是table的一个扩展,对吧,Table在表中的扩展是同时向垂直方向和水平方向扩展啊,方方向展开的,这个一般我们啊使用的使用的情况呢,用于合并查询或者追加查询,但是直接遇到这样的情况的时候,我们可能都是这个table的combine合并一下啊,那再举个例子,比如说我在表中。添加一个财宝吧,比如说我这个添加一个财宝。
28:01
嗯。比如说我直接写一个,等于一般吧。一般你看现在每一行都是一般的这个表对不对,我展开的时候,假如说我现在只需要展开语文成绩和次数啊,选择这两个展开。展开的时候,你你会发现没张三一这个值被他重复了这么多次,对不对,重复了这么多次,就是说一般里边一共有十行那。啊,有十行的时行,那你看张三一是不是被重复了十行,张三二也是被重复了十行,对不对,也是被重复了十行。啊,被重复了十号,所以它是向行和列两个方向展开的,也就是说水平方向,垂直方向啊,它都是同时展开的啊,这个呢,其实在他跨越中也是比较重要的啊,尤其是展开的时候,或者说在复杂公式的时候,我我就想让它横向展开,而不是纵向展开,那就使用构造一个con的,如果是你要这个垂直方向展开的时候呢,你就。
29:20
啊,你就构造一个例子,如果你是两个方向都需要展开的话,你就构造为table啊,那今天的课我就讲到这里,呃,至此呢,我们三大容器。或者三大数据结构的课程呢,都已经讲完了,这四节课是抛块中或者M函数中的核心内容啊,只要掌握这三节的内容,你才能真正的掌握了。或者说灵活掌握啊,Power的一个转换的这么一个功能啊,同学们再见。
我来说两句