00:00
好,接下来我们继续啊,还是来说列表,之前我们刚才说的是我们通过索引和切片去修改列表,那接下来我们来说通过方法来修改列表啊,我们来说一下我们这个列表的方法,哎,列表的一个方法,列表的方法啊,我们还是再强调一下,方法其实跟函数基本上是一样的啊,只不过我们方法是和对象关系比较紧密的,也就是方法,它必须要通过这个对象去调啊,通过对象去调,那我们既然说的是列表的方法,那我们这些方法就是必须得通过什么呀?哎,通过我们这个列表对象去调用啊,通过列表对象去调用,好在这儿我们还是先创建一个列表,Students等于一个这写一个吧,中二我们来一个这个孙悟空,然后这来一个猪八戒,然后这来一个沙和尚。沙和尚啊,创建这么一个列表,然后我们在这打印一下啊,打印一下打印什么呢?这个是我们原列表啊,原列表什么叫原列表啊,诶原来没有这个修改的列表啊,没有修改过的列表,原列表,然后我们这儿来打印一下这个SQ student。
01:16
好,这是保存,我们来看效果先,这一执行原来表是这样的,对吧?诶是这样的,好,那接下来我们来说这些方法,方法我还是先说一下,去哪看啊,在我们的这个文档里,之前说了是吧,之前说我们在这个叫做一个py standard library啊p standard library在这儿呢,我们有一个叫sequence type sequence type啊序列的类型点进来这些操作啊,上来看4.6.1第一第一个列表里边的操作,这一些都是我们列表的序列的通用操作,也就是说无论你是可变序列还是不可变序列,这些操作都是可以的啊,都是可以的,这是我们的这一部分,然后再往下下边,往下边会有一个4.6.3,那这些操作就是什么呀,就是对于我们可变序列的,就是说这些操它只对可变序列有用,包括之前我们说的对序列进行赋值,通过索引,通过这个切片进行赋值,通过比例的去删除,对吧,这些东西实际上都只能。
02:16
应用于什么呀?我们的可变序列,不可变序列是不行的啊,是不行的,好,那这里我们来看一下这几个方法,方法都在这儿呢,你看都是什么s.S点这告诉你必须得通过序列对象去调用啊,我们来分别说一下这几个方法,我们先从呃,先说第一个吧,我们先说第一个方法,我们叫做一个aend aend什么意思呢?Aend叫做一个插入啊,做一个插入在这其实他也写了,叫做一个s.aend写了一个X,在我们序列里边,这个方法里边写了一个XX就表示一个元素啊,元素在这里他也写了,描述了a pen X to the end of the sequence叫什么呀?把X这个元素添加到我们序列的最后啊,把X元素添加到序列最后,那注意了,我们在往序列最后去添加元素的时候,像这个最后是什么?你像012,最后一个是不是三呀?哎,最后一个是三,那如果你要想往最后一个添加元素,如果你这来一个students,来一个三,等于一个随便写一个二。
03:16
诶,这一保存,你这一执行它是会报错的,为什么是不是超过最大索引了,哎,所以注意一定注意,你再往最后去添加元素的时候,你是不能以这种方式添加的,你一以以这种方式添加是不是就就报错了啊,就报错了,所以这里边给我们提供了一个什么呢?给我们提供一个aend的这个方法,我们可以通过aend的来添加,怎么添加,直接sus点一个PE呃,End的,比如说我这来写一个这个蓬僧,那这是什么效果,咱们来看还是啊,我们这来写一个,这是我们这个修改后新列表,新列表,哎不是新列表了,修改修改后啊,修改后因为我们对象本身没有变啊,就像我们说的这个这个这个列表就像一个容器一样,就像一个塑料袋一样,我们在这儿这种修改对容器本身是不会变的,容器还是那个容器,只不过是里边东西变了啊,里边东西变了,那这样我们来看效果,这一执行是不是唐僧就过来了啊,唐僧过来了啊,这就是我们说aend aend的什么效果,Aend是像我们这个裂。
04:16
表的这个,哎,最后哎添加一个什么呀,元素啊,列表的最后添加一个元素,叫做一个aend啊,Aend好,那这一块,那回来之后老师他向哪个列表添加呀,那注意了,我们这个方法是不是通过这个序列通过列表去掉的呀,哎,你通过谁掉就往谁添加,你通过students调的就往students添加,你通过Mali添加调的就是往Mali这添加,通过谁调的就往谁那去添加啊这是我们说的一个aend啊openend好,我先注掉,非常简单,到时自己来试一下,呃,End的整完了以后我们再往下看,还有一个和aend的这个类似的。类似的叫什么呢?类似的我们叫做一个,在这叫做一个in insert啊insert人家说了人这是描述写了insert X into as as index of given by,哎,什么意思呀,来咱们这直接写吧,直接写叫做一个insert inser,那我们的这个呃,Pen呢是什么呀?是向我们的列表的最后添加一个元素,Inser呢,是向我们这个列表的这个指定位置,诶,插入一个元素啊,插入一个元素,那我们来说一下它的参数,相对来说麻烦一点,它需要两个第一个参数,第一个参数是我们这个要插入的这个元素,第二个是要插入的什么呀?插入的一个位置啊,插入的位置,所以insert我们要调的话就是students,点一个这个insert insert我们还是ert啊,还是来唐僧吧,唐僧,我们这时候来什么呢?来一个二,那这个时候表示什么意思把?
05:54
唐僧插入到索引为二这个位置啊,看效果这一直行,呃,那这个时候我们会啊,人家说了叫做一个object cannot be as the in,那等于是这块我们猜啊,我的参数写反了啊,看这它的参数写的顺序,第一个是I,第二个是一个X啊,第一个是I,第二个X,所以我这两个参数顺序正好是写反了,应该第一个是我们要插入的一个位置,第二个我们要插入的这个元素,所以我这应该写的是一个二号,然后这是一个唐僧啊,唐僧写反了,这个参数顺序一定要注意啊,这一保存我们这一执行,咱们来看效果,现在唐僧是不是插入到这个位置,哎,插入到这个位置,插入到以前沙盒这个位置,那同学看到这儿可能会说老师,那这跟我直接通过索引二去插入有什么区别吗?当然有区别,通过索引你去插入的时候,是不是会用唐僧去替换沙和尚呀?我插入完了沙盒就没了,但是我通过insert插入。
06:54
的特点就是什么呀?唐僧插入到这二这个位置,那剩下的后边元素是不是顺速往后移动啊?哎,沙克是往后移了,也就是说他不会去删除元素,它只是去插入啊,只是插入啊,这是我们说一个色的啊,呃,Pen的还有隐色的都可以用来向我们这个列表中插入元素,相比来说隐色的可能这个位置更灵活一点,呃,喷呢,它只是往后插入,而insert是什么呀?你想往哪插入是不是就往哪插入?哎,我们叫做一个insert insert完事以后我们再来看,还有一个叫做什么呀?叫做一个extend extend叫什么意思呢?Extend叫做扩展啊,叫做扩展。
07:31
呃,我们来说一下extend extend它是一个扩展我们的,哎,我们叫什么呢?使用新的这个序列,哎,来扩展我们这个当前序列啊,使用新序列来扩展我们当前序列,你看它这个参数,它里边传一个什么呀,传了一个这个,哎T这T是什么呀,其实让你传就是让你传一个什么呀,传一个这个序列啊传一个序列,那这块我们来直接看效果。
08:00
呃,我们先试一下啊,先试一下,呃,我直接来个students,点一个这个extend extend呢,我们这如果啊,假如说我这样写,我传一唐僧,我传一个单一的值,呃传字符串还不太好,这样我传个123啊传个123,我们这一执行走一个他是不是报错了,哎告诉你in的object not terrible表示一个迭代意思,迭代便利,那其实说白了就是它需要一个什么呀,需要一个序列啊,需要一个序列,所以这里边我们来说一下,它需要一个什么呢?哎,需要一个这个序列作为参数,哎作为参数将它将会什么呢?哎将它会将我们这个哎该序列中的元素,哎添加到我们这什么呀?哎,当前哎添加到我们这个,哎指定序列中,当前序列中当前这个列表吧,哎,列表中什么意思,看这啊,我。
09:00
写一个我写一个这个唐僧。然后呢,我们这儿来一个这个白骨精啊,白骨精这一保存,现在这什么效果,这个是我们要把这个列表添加到它里边,什么意思啊,之前你用的pen是不是就加一个呀,你用干嘛呢?它会把这两个全都加进去啊,把这两个全都加进去看效果这一执行是不是唐僧白骨精都进去了,诶所以其实它跟这个a pen有点类似,A pen是传一个,而这end干嘛呢?诶可以传一个列表,它就可以把多个元素添加到列表的后边啊,添加到序列的后边啊,这就是一个extend效果,它相当于什么呢?它相当于加等于,什么叫加等于啊,我直接students加等于唐僧白骨精,这两个效果是一模一样的啊,没有任何区别,效果是一模一样的啊好,那这个是我们说的extend,所以这个时候呢,你这个就对比一下了,如果你只需要加一个就用a pen加多个就用什么呀,Extend。而如果你要想向。
10:04
指定的位置加用什么呀?用insert啊,用inser insert,但是其实你看到这儿你会发现,其实大部分操作我们是不是都可以用这个切片来完成啊,诶都可用切片来完成啊好,这也是我们这三个方法,A pen的insert,还有一个extend,然后再往下说,这是我们这个插入的方法,插入的方法说完了我们来说什么呢?删除删除,我们来看第一个,我们要说的是一个叫做咱们先说它吧,这个哥们特别狠,可clear的干嘛的呢?Clear叫做清空我们序列,清空序列这直接来演示就完事啊,一演示一看就懂了,Students点一个这个,可C啊C还是再强调一下啊,虽然我这在说清空序列,其实这主要还是对于什么呀,对列表来说的,因为这个东西只用于我们的可变序列,不可变序列自符串啊,这个元组你调它是没用的啊,对它是没用的,我们这一保存在这里,我这一执行走一个。
11:03
是就没了啊,就没了啊,Clear clear尔,清空序列一定要可尔,我们这个列表中的元素就全都没了啊,可粒尔,然后再来说我们下边有一个什么呢?有一个叫做。泡泡泡泡还有一个remove都是删除的啊,都是删除的泡泡还有remove泡泡泡泡是干嘛的呢?它是我们叫做一个根据我们这个索引删除并返回我们指定元素啊,根据索引删除并返回指定元素看效果啊,我这块我直接调一个这个students点一个泡泡一定注意啊,方法要通过对象去调泡泡什么呢?我来一个泡泡二,泡泡二就相当于什么呀,叫做删除索引为二的元素,删除索引为二的元素,那索引为二是谁呀?索引为二我应该是012,索引为二是不是沙和尚,哎,我这一执行咱们来看效果,做一个沙和是不是就没了,哎沙和尚就没了啊,这是我们说的一个泡泡删除指令元素,那注意同学看到这儿可能会觉得那跟这比delete的那个那个那玩意有啥区别啊,其实确实大体上都一样,但是注意这个方法它有返回值,它会什么呢?它会返回删除元素啊并返回哎,并。
12:13
返回被删除的元素,哎,它除了删了它干嘛呢?返回咱们来看一下啊,我直接来一个reut result等于一个它我用result来接收一下反回值,我们这直接打印一下,来一个这个reut result等于我们这来一个result输出一下,这保存一下看效果遇道等于什么沙和尚,沙和尚是不是就没了,哎,所以注意它返回的是被我们删除的这个元素啊,被我们删除元素,那这个时候注意了,我们来看一下,看什么呢?我如果不传,注意这索引可以不写啊,可以不写,不写我们来看效果走一个是不是也是沙和尚,哎,也是沙和尚,那什么效果呀,这个是删除最后一个元素,最后一个元素,当然你说是不是他只能删最后一个呀,我们天试试来个一啊来个一,这一执行是不是删的就是猪八戒呀,诶删掉猪八戒啊,所以这个时候如果你不写的话,他就是删除什么呀,最后一个元素,最后一个是谁就把谁给他干掉给。
13:13
啊删除啊,这个是我们说的一个泡泡啊,删除并返回那个被删除的元素啊,删除并返回被删除的元素,好,泡泡说完了,接下来我们再看下一个,我们还有一个叫做一个什么呀,Remove啊remove是干嘛的,来直接看效果。呃,Remove呢,其实我们来说一下,泡泡是根据索引删的,哎,而remove呢,是根据元素的一个值去删的,哎,删除指定哎值哎,删除指定值的这个哎指哎就这么写吧,哎,指定值的元素,哎指定值的元素什么效果啊,我们这泡泡里边传一个索引,它是根据1234,根据顺序顺序删的,对吧?而我们这个remove呢,它是根据值去删的,比如说我现在想删谁呢?想删这个诶猪八戒,那我可以调remove,直接students点一个这个remove remove谁呢?Remove来个猪八戒啊,猪八戒这一保存,我们这一执行,猪八戒是不是就没了,哎,猪八戒没了啊,所以注意这两个的区别,泡泡是根据索引删的,而我们的这个remove是根据值去删的啊,删除这个猪八戒,所以是几无所谓,只要是诶有值就OK了。
14:31
但是这时候会有一个问题,那假如说我这边有两个猪八戒呢,有两个猪八戒呢?哎,它会删除什么呀?它会删除第一个啊,它会删除第一个啊,所以这里面注意它是删除指定值的元素啊,如果什么呢?如果相同值的这个元素有多个,哎,它只会什么呢?诶只会删除第一个啊,只会删除第一个,这个是我们说remove,它就没有返回值了啊,它就没有返回值了,我们可以看一下result,等于看因为它返回值没有意义,为什么没有意义呢?它已经根据值去删了,你返回什么呀,返回索引吗?对吧,我们来看效果这一执行是不是那呀,哎,那就没有返回值啊,没有返回值,所以注意它是没有返值的啊,我们就不说它了,这是我们说一个remove啊,这是我们说的删除的这么三个clear clear,哎,我们的remove,还有一个我们这个什么呀,哎泡泡这些方法啊,这些方法也就说这些就是我们这些,哎增加呀,诶删除对吧,这些方法,好,那其实主要的就是这些,还有几个也是会用到,但是不是特别常用的什么呢?看看啊看看这有一个方法,我们叫做一。
15:46
呃,Rewardse rewardse rewardse它是干嘛的呢?Rewards用来反转我们这个列表,哎,它用来反转我们这个列表,什么叫反转列表,我们来看我们原来列表是不是孙悟空猪八戒沙和尚啊,哎,孙悟空猪八戒沙和尚还有个猪八戒对吧,猪八戒我们后来添加一个把猪八戒去了吧,改成唐僧,唐僧是按照这个顺序,孙悟空抓戒杀了唐僧的顺序去写的,那我这调一个反转,我们来看一下sus,点一个re rewards直接调啊,Rewards在这儿,我们这一执行走一个干嘛了,唐僧沙和尚,猪八戒,孙悟空是不是掉个了?哎,也说他是把这个唐僧放前边,把这个猪八戒沙和尚就是调整个颠倒过来了啊,整个颠倒了一下顺序啊,颠倒一下顺序,这没什么可说的啊,这没什么可说的,Rewards啊rewards那注意了,那这些方法,我们说的这些方法都是改的什么呀,对象,比如说你这调完了以后,对象就直接跟这变了啊,直接跟这变了,待会儿我们再去解释一下这个可变对象的事儿,但是现在你先知道我们这个对象直接。
16:46
就被我们改变了啊,被我们改变了,好,这是我们说的一个rewards啊rewardse,然后还有一个在这里边没有列出来的,我们也说一下,咱们说一下,呃,叫做一个什么呢?叫做一个sortt sortt叫什么意思?排序啊,排序它是用来什么呢?用来对我们这个列表中的这个元素进行排序啊,用来对我们这个列表中的元素进行排序,那这里边儿我们换一个列表啊,换一个列表。
17:15
把这个呢,先给它住了啊。啊,我们这这也住了啊,换一个欢迎什么呢?哎,我们这来一个这个my list啊,My list my list等于一个中号,这来一个这个B,然后来一个这个或者这样吧,我们直接转来一个list,我们这来一个括号,我们说了它是不是可以把一个序列转换成一个列表啊,随便写一个,随便写一个,我就写这么一个这个字符串,它会把这个字符串自动给我转换成我们这个列表,直接打印一下啊,打印一下print print print的一个,我们这个叫做一个修改前啊,修改前我们这来打印一个这个malice啊malice,然后在这我们来打印一个print,我们来一个这个修改后,修改后我这来一个这个malice,但是现在还没改呢,对吧,没改呢,我们看效果,这一打印是不是就是瞎排的对吧,没有任何顺序,那这个时候我可以调一个直接掉我们这个my list,点一个这个sort sort啊我们这一直。
18:19
行走一个发现什么了,你看ABB n ns是不是按照这个字母顺行排序了,哎,所以你调完so以后,它会自动对我们这个列表中的元素进行排序,默认什么呀?默认是叫做一个升序排列,比如说按照字母顺序排列啊,默认是什么呢?哎,默认是这个什么呀?哎是升序进行排序啊升序排列啊,默认是升序排列,你说你这一排完了就干嘛了,哎,他就这个就就这从小到大去排列是吧,从小到大排列,那这个时候如果你是他是这样,或者你是这样一个啊,我来一个my list,等于一个中号,来一个11,二十三四五,然后零,然后负二,这是不是一个数字啊?哎,一组数字我们这一直行,是不是也可以把数字按照这个从小到大的顺序进行排列来进行排列啊,这个是我们说的一。
19:19
Sort啊,Sortt对我们这个列表进行排序的,当然sortt呢,这个是我们列表的方法,你在这儿你就你就看不到了啊,Sort在哪看往下找,在list这儿,在这儿你这是不是能看到一个S,哎,你在这里能看到一个S啊在这那这个S那同学说老师,那我现在你这个默认情况下是升序排列对吧?升序排列,那我现在不想升序排列,我想干嘛呢?我想从大到小,我想降序排列怎么办?降序排列怎么办?如果你想降序排列在我们这个sortt这你可以传一个参数叫什么呢?叫做re reverse啊reverse你等于什么呢?等于一个true啊,Reverse等于一个处,比如说你是否反转啊,我们先看一下调研效果,咱们来看这个是不是就是降序了,诶从20从大到小了啊,三到小了,所以这块注意,如果你需要降序排列的话,你就是干嘛呀,传一个reverse等于true作为参数啊,默认是升序排列,如果需要降序排列。
20:19
则需要传递一个这个re SE rewards等于true,哎,作为参数啊,作为参数,哎,其实说白了就是什么呀,排完了以后再反转一下,它也就就是变成什么了,就变成这个降序了啊,变成降序了,好,那这个是我们说的一个sort啊,Sort当然还有一些高级用法,我们现在先不说它,我们现在就说一下最基本最基本的一个用法啊,那我们来整体回顾一下我们刚才说的几个方法啊,添加的aend insert extend都是用来添加的三个方法,然后clear pop remove是用来这个删除清空的,然后rewards反转的sort是用来排序的啊,So用来排序的,这个就是我们说序列,这个序列列表的几个方法啊,主要是用来对列表,因为它是什么呀,可变对象,注意,一定要注意这些方法能不能对字符串去掉,诶,一定是不能的,因为他们只适用于可变序列啊,可变序列。
21:19
待会儿来把这个来熟悉一下,我们再讲一点东西,我们就可以做一个综合的练习了啊,我们还是来听一下。
我来说两句