00:00
那么我们将在本小节当中继续为大家讲解列表的内容,本小节讲解的主要是列表的函数啊,好,我们在这里边啊,打开我们的列表文本文件,在下面给大家讲一讲列表相关的函数,列表的函数呢并不多,也就十来个左右吧。列表相关的函数请注意,我们现在讲的是和上面这个max命不太一样,上面这个东西真正的是函数啊,这些函数是很多数据或者很多其他的数据类型都可以使用的,而我们下面要讲的列表函数本质上叫做方法,本质上的话啊,不是,实际上应该叫做列表的方法,但是我也给大家说过,这个方法的本质就是函数是不是,只不过是函数专用的,所以我们叫它方法也是没有问题的。好了,我们要讲解哪些方法呢?第一个叫openend的方法,End的方法。就是添加相关的啊,还有个insert方法也是添加相关的,别着急,我会给大家详细讲解,然后还有删除的pop remove方法。
01:00
然后呢,还有我们清空的方法,复制的copy方法写错了啊,Co复制的copy方法。然后呢,还有我们的计数的count方法,然后呢,继承的或者叫做拼接的extend的方法,反转的re ver方法,以及最后的一个排序方法啊,就这些方法我们一个个的给大家介绍它们的用法,首先呢,先来看一下第一个aend,在这里边为了创建成功,然后呢,在里边干什么事呢?先讲aend啊end它的作用,先给大家写一下aend的作用是什么呢?叫做在列表的最后。在列表的最后。添加数据啊,添加数据。好,也就是在列列表后边加数据,我们是不是又学了一种可以在列表里边加东西的方式啊,除了分辨赋值是外,这个好了,那我们在里边写一个列表啊,比如ru it fruit,我们的水果等于中括号里边写上啊,苹果。
02:09
香蕉。西瓜。逗号菠萝。好,然后呢,我们再加两个行不行,菠萝,好,然后呢,我们想在列表的最后再加一个数据,怎么办呢?让大家先看一下我们现在的数据啊,方便对比好不好?然后呢,看好了直接使用fruit,因为fruit是不是列表啊,点a pen看好了点a pen也就意味着哦,它必须列表表跟这个字符串一样啊,字符串是不是字符串点啊它是列表变量,点pen你要添加什么数据呢?在后边写就可以了,比如说我们要加上什么呢?这个加上一个叫做贵妃梨行不行?哎,贵妃梨呢?离离子的啊,好,然后呢,加完了之后,请注意不需要拿变量来接收我们的结果,因为它实际上是直接修改的原有列表啊,叫做直接修改原列表。
03:10
修改原列表,所以说你要检测的时候,还是要检测我们的水果fruit,来大家看一下我们是否会多一个贵妃梨的数据,是不是在菠萝后面多了个贵妃梨啊对不对?嗯,大家很多时候能不能加两个,是不是来右键运行一遍看可以吗?不可以啊,只能加一个啊,这个是大家要注意的啊,所以给大家写最后添加一个数据啊,限定一下好不好,只能加一个数据啊,所以这个就要注意一下。而且只要你通过the pen加的永远在最后啊,比如说我再加一个fruit it fruit fruit fruit点我们再加一个,比如说再加一个这个,呃,黄瓜,黄瓜算吗?不算啊,西瓜冬瓜也不算水果呀,加一个葡萄吧。葡萄好什么葡萄?好,大家来看啊,这个葡萄加哪了?加在了不贵妃丽后边,看见没有,它只能在最后加,这个千万记住啊,必须在列表了最后添加,那很多时候我不想在列表最后加,我想在列表的中间或者某一个指定位置加,怎么办呢?那这个时候则需要用到另外一个函数叫insert,它是在列表的指定索引啊,在列表的指定索引之前添加数据啊,添加数据。
04:28
那这个时候呢,先把这个喷子写一下吧,它是我们的列表变量格式,给大家留下好不好列表变量啊,点ped,然后里边写上一个值就可以了,那我们的insert则比它呃功能要多一点,它是在指定所有位置之前,你可以插更多的位置是不是,那这个时候怎么用呢?来反回模代码当中,把上面这个注释调我们来看一下啊,这个insert方法的应用,或者叫insert函数的应用,把上面这个注释一下啊,因为太多的话容易看着混乱。把这个注释一下。
05:00
然后呢,还是以我们刚刚的水果为例,我们先获取水果列表,并且打印一下。那么右键运行一下,还是原来这四个啊,还是原来这四个,我现在希望把加一个什么呢?加一个葡萄加到西瓜前面,那这个时候你就要找所以了,苹果的作用是零,香蕉是一,西瓜是不是二啊,所以加到西瓜前面你就应该是fruit f fruit fruit.insert插入的时候呢,干什么事呢?先写插什么数据,比如说我要插入一个葡萄是吧,葡萄,那很多时候,那我就这么写行不行?来你阅写一遍程序你就知道了,走你。行不行不行啊不行,那必须在这里边加上一个什么呢位置,比如说我要加到二前面,二是不是西瓜前面,再来看程序还报错吗?来运行一遍,哎哎,写错了啊。啊,写什么index写错了,不是写index,写这个insert啊,写成index了,来你看如果我不写这个,直接写葡萄行不行?来右建月写一遍。
06:03
是不是不行啊,Ins色的必in说iner必须有俩参数,但你只给了一个,所以它还需要一个位置,咱说加西瓜前面西瓜12啊,这次运行程序就不会报错了,是不是成功了,嗯嗯。写反了吗?先写位置再写数据啊,我可能记反了,先写位置再写数据吧啊。啊,这次就对了啊,先写位置再写数据,好了,我们再一次打印我们的水果列表fruit,来看一下葡萄是不是被加到了西瓜前面,是不是西瓜前面是葡萄,然后你想换位置,我要加到香蕉前面,你写一呀。这次就在香蕉前面了,看见了吗?是不是香蕉前面是葡萄,所以说如果用音色的,你可以插入到任何位置的前面,菠萝前面,西瓜前面,苹果前面都可以,但是就一个地方查不到最后一个位置,因为最后一个位置没有定位点,所以你没有从它前面是不是,那这个时候谁出来了,A pen出来了,所以a pen和in色结合到一起,就可以插入到列表的任意位置了。好了,这就是我们的插入相关的两个函数,银色和pen。好了,插入相关完了之后呢,我们再来看一下什么呢?删除相关的,删除呢,有两个函数啊,一个叫pop。
07:14
啊,Pop啥啥叫pop啊,英文单词pop是弹出的意思,来在弹,在我们删除数据之前,老可以用水果列表先来进行一个操作,那如果我希望删除一个数据,它怎么用呢?来在这里边可以这样写啊,上面这个啥没写呢。变量,我们把上面这个格式给大家补充一下好吧,啊,这个格式是这样的,变量insert写错了in set,然后呢,索引位置啊。索引位置后面是值,然后pop的作用是在列表的指定索引位置删除数据啊删除数据,你想删除你告诉我就可以了,所以它的格式是这样的。直接写上列表变量啊,直接写上列表变量啊,我就不写列表了,因为我都习惯写变量啊,点pop方框,这是一种格式,还有一种格式就是拿过来下面加一个索引位置。
08:15
它有两种格式,就是你可以不写这个索引位置的好,真的可以不写吗?可以的,首先来看一下,如果我不写,或者什么情况float.pop发生括号,如果这样的话,我们能不能少数据呢?或者被删除数据呢?答,可以的,它默认会删谁呢?最后一个菠萝来第一次有四个,第二次是不是菠萝被删掉了啊,它不是随机的,只是删菠萝,如果说啊,注意看好了,如果说我想知道删掉的是哪一个数据怎么办呢?没有关系。被删掉的数据我们可以在里边用返回值进行接收,所以实际上是它的操作,操作原列表,并且把删的数据被删掉那个给了result,所以你来看一下是不是被删除的是result,我们的菠萝看见没有,所以被删除的也可以看得到,在前面用变量接收就可以了,那我们现在是默认删除最后一个吧,是不是啊,现在这个叫做默认删除最后一个,给他写注释啊。
09:15
这是默认删除最后一个数据。那如果我希望删香蕉,我不删菠萝怎么办呢?那就要指定编号了,所以这个时候我们可以result等于fruit.pop同时把你要删的编号放进去,相交编号是一吧,这次再看右键删除。香蕉是不是被删掉了,菠萝还在呢,是不是,所以这是它的两种删除方式啊,这个是指定索引删除啊。指定索引删除,你指谁就删谁,Pop没问题了吧,Pop完了之后呢,还有一个跟它很相似的叫remove。Remove的作用呢,也是删除啊来的作用呢,它也是在列表中删除数据啊,在列表中叫在列表中。
10:05
写错了,在列表中删除数据,筛什么数据呢?指定的数据啊,很多时候不是指定位置的吗?不是啊,它按照数据来删,而不是按照位置来删,按位置是泡泡的功能来反回来我们看一下,我们在这里边把刚刚这个香蕉水果啊再拿回来用一下,同时把上面的内容啊接着注释一遍。这个时候呢,我们review啊,只是简单的输出对不对。还没有做任何操作的,我如果想删西瓜怎么做呢?非常简单,直接发u it.remove方框里边写西瓜就行,这里边直接写西瓜啊,就说白了,我可以按值来删的西瓜,这个时候呢,再次打印水果,你就会发现我们的foot里边西瓜真的被删掉了。是不是真的该删掉西瓜了,那很多学生,那我是不是能接到它的西瓜呀,前面能不能接到啊,接收不到的,这个千万注意,Remove函数是没有任何返回值的,所以在这里边result的结果只能是一个none啊。
11:07
当然兄弟也说也不理解,说为什么上面能告诉我删除的是谁,下面就不告诉我呢?很简单啊,你自己还用知道你删的谁吗?你自己不自己写的吗?所以这个你肯定知道删谁,而上面给位置的时候,你不知道删的是谁啊,所以他就要返回这个结果啊,我们的程序还是很人性化的,对不对?好了,那这样的话,删除和我们这个添加就介绍完了,介绍完了删除和添加之后,我们就来看下面的操作啊,把这个格式给大家写一下啊。直接写上啊,变量点remove,我们写上值就可以了,你要删什么,直接在这边写这个值就可以了。下一个函数叫做可乐函数啊,很多啥叫可乐啊,可乐是不是打扫卫生清除的意思,是不是它的作用叫做清空列表,清空列表啊就么简单,用法呢,更简单,变量点可就可以了,而且没有任何参数啊,那很多这有啥用呢?来看一下,首先呢,我们在这里边使用这个水果列表进行一个操作啊。
12:09
来写列呀,操作的时候我除了打印水果之外,还要打印这个水果列表的ID编号,也就是说查出它的编号来fit it好了,运行遍程序,大家会发现啊,是不是都在这啊,啊,数据也在,编号也在那,很多学说我要把列表清空很简单啊,我直接什么呀,我直接把这个列表什么删除了行不行?D删除了行不行?我告诉你不行,因为你这样相当于什么呀啊,我一个篮子里边装的是一大堆水果。人家说了,你把篮子里边东西倒了,只要你把篮子都给扔了是不是,所以不行啊,这种就不符合清空的一个概念了,并且也会报错啊,因为你下次打印是不是打印不出来了,ID编号你也查不出来了,我只让你扔篮子里边的东西,没让你扔篮子本身,所以用DL是不行的。当然好多学生想一招,那简单啊,我把篮子重新复制一下行不行呢啊,空军复值为空列表,这看似是可以的啊,你的列表真的变空了,你看列表是不是真的变空了,但是实际上不对,什么东西呢?你会发现他的ID编号变了,这就相当于我说你把篮子里边的东西倒了,你倒好把篮子直接扔了,又拿了一个新的篮子放在手里边了,和我的要求不一样,对不对?所以呢,我们这里边就来了一个什么东西呢,可直接fruit点可就可以了。
13:27
当你使用clear函数,它会保证把你篮子中列或者到列表中的数据清空,并且保证列表还是原来的列表啊,所以它的ID编号是不会发生变化的,看见了吗?是不是ID编号没有变啊,这叫做清空列表啊,好了,好,那这有什么用啊,这样效率会更高一点啊。好,除了清空列表之外,我们下面给大家讲的是一个copy啊,叫做复制列表啊,叫做复制列表。复制类吧。简单说就是你有一栏的东西,我想再拿一份,再得到一份一模一样的,是不是copy函数复制列表,用法呢,也很简单啊,它也没什么参数的,直接写就可以了。首先老规矩,先拿出我们的。
14:10
水果列表进行一次打印啊,也看一下它的ID编号是不是出来了,144对不对,好多说为什么和上次不一样啊,注意啊,你程序每次运行的时候内存会重新分配地址的,所以编号也会重新分配的啊,那我想复制出来一份怎么办呢,直接。点copy就可以了啊,Copy靠上框。当我们使用这个操作之后啊,我们其实就可以拿一个新的变量来接收了,它是有返回值的,所以你要接收一下啊,那这个时候我们打印什么呢?Result这个变量,打印result变量。你会发现result变列会得到一个和fruit一模一样的数据,是不是复制了一份?当然大家有疑问说ID编号是一样的吗?ID编号不一样,你的篮子在你手里边,是不是又没在人家手里边,人家只不过做了个新蓝的,把东西又装了一份一样,所以他俩的ID编号是不一样的,这个要了解一下明白。
15:01
好了,那这就是复制列表了,它的用法也很简单,直接是变量点量啊,不不不不copy什么copy就可以了。来接着看下一个函数,这个函数叫做计数用的啊,它叫做说计算,它的作用是计算列表中,计算列表中指定数据出现的次数。次数,嗯,就这么个意思。比如说我们现在有一个列表啊,不用水果了,换一个。在这里边啊,我们写一个新的列表Co count,这个列表干什么事呢?写了很多人的年龄叭,如说AGE4写了很多年,比如说把一个一个班的年龄都写进去了啊,有23的,有二四的,有23的,是不是二十二百四十五就过了啊,有23的,有24的,有25的,有26的,有十呃,有22的,有21的,有22的,有19的,有25的,有26的,行,我想看一下班里有几个人是22岁的,明白,说白了就简单,就看列表中几个22的值呗,是不是?那这个时候count就起作用了,用法是这样的,Result接受结果等于A4这个列表点count。
16:15
然后你要查什么数据,你不要查22岁的吗?22往里放,这个时候我们就可以获取当前列表中一共几个22岁的人物,几个,是不是两个22的啊,就这两个呗,你要差23的也行,写个23,二十三一个两个,好像也是两个吧,23也是两个。23也是两个,是不是20怎么都是俩呢?21呢?21只有一个吧,右电位先变。21是不是就是一个啊,就这个作用看懂了吗?Count用来计算数据的啊,它的作它的用法是变量啊,点con套上括号里边要查找的值就可以。值就可以了,需要注意啊,我们每次写的变量都表示当前这个讲的类型啊,好了,其实写写列表可能更好更好一点,是不是,我是不是应该改改口,都改成列表,这样显得高高大上一点啊,免得大家找茬是不是都改成列表吧?
17:11
列表可以存变量里面,实际上这些变量都是列表变量啊。好,这样大家就不会找茬了。好,没问题,来接着看啊,前面讲字符串文写的变量啊,大家也可以改一改啊好了,Extend它的作用是什么呢?将两个列表合并为一个啊,将两个。列表合并为一个,或者叫追加到一个当中去,这样解释更好听一点啊。用法是怎么用的呢?一个是列表点套块里边放列表就可以了。跟加号有相似的功能啊,有相似的功能来在这里边我们写上我们的操作,End。E好,看上括号,首先呢,我们在里边写一个girl的列表啊,等于小红。
18:05
逗号小丽。小丽啊,逗号小萌,行,就这些吧。然后呢,再写一个大老爷们的列表,Boy列表啊,等于中括号里边啊,你就随便写呗。然后呢,在里边小刚逗号。小明啊,逗号,然后小小成行不行,小成啊。呃,这个别这个叫students。行不行,也就是说我有一个女孩列表,有一个学生列表,学生列表里也可以女的没有关系的,比如说再来一个吧,小盼盼行不行,小盼啊行,那我希望把这个girl的这三个人也放到这个学生的列表里面去,那怎么做呢?这个时候就使用students点啊。写错了ex啊,方框把你这个个往里一放就可以了。
19:04
这个时候它的作用是将girls列表追加,将加l girls列表的数据追加到,追加到。啊,Students students列表的后面啊。其实就相当于一个相加操作嘛,这个时候你再打印我们的student stu啊student来右键运行一遍,大家看一下结果啊,是不是小明小刚小胖后边出来小红小萌小红小小丽了是不是?嗯,就是这个追加操作跟加号有相似的功能啊,但是不一样,因为你加会得两个列表,得到一个新的列表,而我现在是把一个列表加到另外一个列表里边中去啊。好了,这是我们extend的用法啊,好,完了之后呢,接着看resource,这个就简单了,叫做列表反转啊。列表反转就是调个个呗,是不是用法是列表点就可以了。
20:06
首先呢,你要先写一个列表。这个列表我写一个简单点,写个数字行不行?好,我们在里边井号re套上括号,我们可以在这里边定一个列表,比如说数字列表吧,Number等于。12112345678好,然后呢,干什么事呢?我希望把这个列表翻过来变成87654321,哎,那这个时候就可以用列表翻转了,Um.re哎,写错了,Re SE。不需要任何参数,直接再次打印我们的number列表um来看一下结果,右键运行程序是不是变成8765421啊嗯,非常简单的一个函数,对不对,列表反转就是倒个个嘛,然后最后一个函数稍微有点复杂,叫做列表排序啊,叫做列表排序。列表排序啊,那列表排序复杂在于它的格式比较多啊,比较多,我们先看第一种方式啊,直接排序,直接排序。
21:08
好,我们在这里边把这个也注释一下。注释完了之后呢,我们写一个啊,这个thought啊,也给大家写一个列表,写一个number啊,写个列表,写一个混乱的带有数字的列表,行不行,混乱的带有数字的列表啊,这是谁大谁小,我也不知道,混乱的呗,然后呢,干什么事呢?我现在想把它做一个排序好,那最简单,因为我们第一种方式基本排序就可以啊。基本排序就行,直接在里边number.thought什么都不用给啊,什么都不用写,直接这么写就可以了,那么这个时候我们打印我们的number,你会发现右键运行一遍。看见了吗?直接就排了,所以基本排序它是注意看是升序的啊。从小到大呗,是不是默认升序,这是基本操作,那我如果希望倒叙怎么办呢?这就是我们的第二种格式了。第二种格式则是。
22:08
叫做倒序排序啊,倒序排序。那倒叙排序怎么排呢?很简单的,直接number点把上面这个注释掉吧,免得大家看着觉得我上面影响了下面啊,上面这个啥也没有了,OK,好,看一下倒叙排序啊,number.short。如果你只是这么写的话,那肯定还是一个正向或者叫升序呗,对不对?如果你希望它倒叙的话,很简单的,我们的sort有一个关键字参数叫做resource,没错,没听错啊,就是resource写错了,Resource。什么意思呢?上面是不是刚学了反转了,你把它设置为true即可,它的值只有两个,要么出来false。右键运行一遍,你再看这次结果是不是从大到小了,是不是,所以这叫做倒序排列,其实使用的就是一个关键字啊,就是一个关键字明白了吗?然后呢,除了我们倒序排列之外,还有最后一种格式啊,叫做什么呢?自定义排序。
23:08
所谓的自定义排序,就是按照用户的规则进行排序,你想让它怎么排啊,你可以按照它的什么呀,你可以按照它的大小来排。我甚至可以按照它的个位数来排,或者按照它的余数来排,给大家做个简单点吧,行不行,按照个位数来排,行不行,咱自己写,按照个位数来排。所谓的个数排列,就看咱最后一位谁大呗,是不是或者谁小呗,好,那这该怎么做呢?那首先我们写排序函数,number.or so,套上括号。然后干什么事呢?你不是想按个位数排吗?那这个个位数你得先获取到啊,是不是?所以在这里边需要看好了定义一个处理,叫做定义一个一个获取个位数啊,获取数值个位数的函数,这个函数名你随便定义吧,比如说DF叫做什么呢个,你不要个位数,我写个行不行,它们框,那我当我给你一个数据的时候,你是不是得接受啊,所以写一个变量形参啊,接受一下我们传入的数据,我给你一个数据,你怎么样来给我返回一个这个数据的个位数呢?
24:22
简单啊,求于十是不是就完了,所以I q I return,我们的number n,一啊,就是no啊,求于十是不是意什么数传进来之后,我都可以得到它的个位数啊,105,那求于十余五嘛,五除了还是55还是五,23返回是不是个位数三啊,所以这个数就是这个函数就可以起到一个效果,就是你给我一个数,我就给你什么呀,给你进行一个处理,返回它的个位数,那我希望这里边的每一个数值哪一些呢?来上面,上面不是有数吗?我希望这里边的每一个数值是不是都要经过这个函数的处理操作了是不是?嗯,先把这个数值放这摆上,我希望这里边每一个数据都经过它的处理,那怎么办呢?没有关系,在这里边加一个关键的参数,K等于个。
25:09
这列表是什么呢?我列表中就是这前面这个列表中的每一个数据都会经过这个个的函数进行处理,那么处理完之后呢,它的结果就是什么样的呢?你会得到一个新的列表啊,那12的个位数是不是二啊,二的个位数是二,三的个位数23的个位数是三,然后一的个位数是一,二的个位数2335,然后七,然后四,然后七,然后八,然后六,然后七然后四,然后五,然后四,然后四。这就是你对照上面的数据得到的下面每这里边每一个数字的个位数,看好了啊,是得到它的个位数。但是呢,排序按照这个个位数来排不价,但是最后排完了之后排的是谁呀?不是下面这个个位数,而是排的原来的列表,所以下面你算出个位数只是为排序提供了一个排序依据而已,所以最后的结果你来看好了,直接打印我们的number就可以。
26:13
边来右键运行一遍,你就会发现,嗯,看到没有,个位数一的,个位数二的,个位数三的,个位数四的,个位数五的,个位数六,个位七,个位数八是不是出来了,当然大家也会很凝说这样,同时三的为什么23在前面,三在后面,很简单,因为23先出现的啊,明白啊,所以这个你不用太过考虑啊。好了,来这里边如果想希望它来个倒叙怎么办呢?也没有问题,你可以加关键字service等于除嘛,是不是你就会把这个数变成八,个位数八的在前面,个位数一直在后面,看见了吗?就这样。好了吗?大家学会sort排序相关操作了吗?好了,OK,搞定。那么关于函数的不不不,关于列表的函数,我们就为大家介绍到这里边,大家一定要勤学勤用这些函数啊啊,这样才能提高你的程序开发速度。好了,本小节就此结束,我们下一小节再见,下一小节为大家讲解元组的内容。
我来说两句