00:00
好,接下来我们继续往下看啊,还是说我们的列表啊,我们来新建一个文件,说一下我们列表的又一个知识列表呢,还有一个特点,我们叫做一个切片。呃,切片是干嘛的呢?那我们说这个切片啊,就我们可以这么说,我们可以把这个列表想象成一个整个的一个对象,或者整个一个容器,那我们的如果我们通过索引去取的话,我们是把这个容器里边的某一个对象取出来,对吧?取出的是一个,而切片的意思就是什么呢?诶我可能想获取我们这个列表的局部,诶比如说什么呀?哎,比如说我想获取中间这段,诶比如想获获取后边几个,获取前边几个,也就说我想获取指定的某几个部分吧,哎,你说这个切边就相当于什么呀?诶你把我们列表想象成是一个大蛋糕,切片可以干嘛呢?诶可以切成什么呀?诶切我们蛋糕的某一个部分啊,某一个部分,这就我们说切片啊,切片。
01:00
呃,我们叫做一个切片,呃,那这块我们来说一下,切片指什么呢?哎切片哎纸哎从我们这个什么呢?现有哎列表中。从我们这个现有哎列表中,哎获取一个什么呀子列表啊,获取一个子列表。子列表就是意思其实非常简单,就是获取我们这个列表的一部分啊,获取它的一个局部啊,获取一个局部,好,那在说切片之前呢,我们先来创建一个列表啊,我们来创建一个这个列表啊,那一个列表呢,我们这个列表呢,我就要一个这个students啊t students等于一个中二,那这也是我们列表的一个特点,一般情况下什么呢?哎,一般我们创建列表时,哎,我们变量的名字,哎会什么呀?哎使用负数啊,会使用复数,为什么用复数啊,列表里边是存多个数据的,所以我们用都用复数表示啊,我们来一个students students里边我来保存三个,诶学生的名字啊,三个学生,诶第一个呢,我们这个孙悟空。
02:16
然后呢,第二个我们来一个猪八戒,呃,第三个呢,我们来一个这个沙和尚是吧,三个学生的名字啊,三个学生名字在这儿,我们来打印一下这个students。我们这一执行走一个孙悟空,猪八戒,沙和尚啊三个名字,好,三个名字打印完了,然后在这里边我们来试一下,那这一块呢,我们先补充一个问题啊,先不说这边补充一个问题,什么问题呢?我们在传索引的时候,我们说了,你要想获取孙悟空,你就是死students一个零是不是就获取到孙悟空了,你要想获取猪八戒就students,诶一这一执行是不是猪八戒了,诶你要想STUDENTS2就是谁啊,就是我这个沙和尚,对吧,通过索引获取到指定的我们这个元素啊,通过索引或叫指定元素,那注意了,在我们的Python中。
03:06
哎,注意了,我们这个列表的这个索引可以是负数,可以是负数,什么意思?哎,负数啊,这是这个负数啊,也就说你这可以写一个负一啊,觉得你所以是一个负一,看效果我这一执行是谁,诶沙和尚啊沙和尚,我来一个负二,咱们来看是谁走一个是不是猪八戒呀,哎猪八戒,所以注意如果索引是负数,哎如果索引是负数,则我们这个会什么呀?哎从哎字哎从后哎向前来获取元素啊,比如说什么呀?哎,负一表示我们这个倒数第一个,哎倒数第一个,我们这个负二呢,表示什么呀,我们这个倒数第二个,然后以此类推啊,以此类推,以此类推,所以这一块你注意我写个负一就是获取倒数第一个,也就是沙和尚,我写负二就是倒数第二个。
04:06
也就是猪八戒,我写要是写一个负三,我们这一保存就是倒数,第三个就是什么呀,孙悟空啊孙悟空,那我如果写个负四呢?诶,我写个负四,那还是干嘛呀,报错类似index out of range啊,所以这块一定注意啊,也可以用复数啊,也可以用复数,好这个也是我们判定中特有一个特点啊,所以可以是复数,好这儿说完了,然后继续来回到我们正题,我们来说一下我们这个切片,切片呢,这样啊,我们多写几个啊,我们再来几个吧,来一个这个唐僧,来一个蜘蛛精,再来什么呢?来一个白骨精啊,白骨精写了这么,呃,六个元素对吧,一个一,一共是六个元素啊,123456,那什么时候我们要用到贴这比如说现在我想获取到列表里边的前两个,也就是我想获取到孙悟空和猪八戒这两个元素,而没有获,而不想获取别的,就想获取这两个,那这时候怎么办?我们就可以通过什么呀切片来。
05:06
来获取啊,切二来获取,来在这我们来获取,哎,通过我们这个切片来获取我们指定的什么呀,元素啊,指定元素,那我们来说一下七派的一个语法,七片列法怎么写呢?列表后边跟着一个中啊,跟我们用索引是一样的,只不过我们用索引只传一个值,而我们用切片需要传两个值,哪两个值呢?第一个值是我们起始位置冒,然后后边跟着一个冒号,然后是一个什么呀。结素啊,第一个值是我们的起始位置,第二个值是我们的一个什么呀,结束位置,也就是说我要通过获取起始位置开始到结束位置结束的这么几个元素啊,这么几个元素,所以现在我们来看,假如说我想获取到孙悟空和猪八戒,那我们来看孙悟空的索引是几是零,猪八戒的索引是几是一,那是不是意味着我是从零这写一个零一呢?注意不是我们应该写零二,为什么零二,我们先看效果啊,先看效果在这我们来一个print,我们的列表,我们名叫studentsqs,然后这是中二,起始位置是零,然后结束位置冒号来一个二啊,来一个二,这时候我们来看效果,我直接一直行,咱们来看这个时候是不是就是孙悟空和猪八戒,哎,孙悟,猪八戒,那注意什么意思?我们这个起始位置注意了,我们来说一下,我们在通过切片获取元素是哎,我们这个起始。
06:38
指位置,我们这个,哎获取我们会什么呢?诶,会包括我们这个起始位置的这个元素,但是什么呢?不会包括我们这个什么呀,哎,结束位置的一个元素,也就是说现在我写一个零冒号二是指什么呀?从零开,所以为零是不是第一个呀,从零开始到胆结束到二结束,沙和尚是不是二啊,猪八戒是一,大家注意你所截取到的元素,它是包括零,哎,你就起始位置,但是不包括结束位置,也就是到杀痕就结束了,也就是他只截取到什么呀,孙悟空和猪八戒,那好你来看啊,假如说我这改成零冒号四,你猜猜结果应该是什么?零是咱们这么这么写吧,二冒号四啊,二冒号四我们来看,哎,咱们二有点少,一毛好四吧,一毛好四啊,我们来看,孙悟空是零,猪八戒是一,然后二,然后三,然后四,我们来看起始位置,是一是不?
07:38
就从猪八戒开始啊,结束位置是四,是不是到蜘蛛精结束啊,那我问你我结果应该包含几个元素,哎,很明显是三个元素,因为不包括结束位置,所以结果就应该猪八戒沙和尚还有唐僧,我们来看效果是不是猪八戒沙僧还有唐僧啊,诶所以注意啊,我们切片这两个值它是包括起始,但是不包括这个结束的,这个一定要记束了啊,一定要记住了,好,那接下来我们再来说,那注意了,我们做这个切片操作时,它总会什么呢?总会返回一个什么呀?诶,返回一个这个新的列表啊,返回一个新的列表,所以注意在这里我在执行student顿次的时候,这返回的实际上是一个新的列表,注意这个操作会不会影响我们原来列表,哎,我们来看一下啊,哎,Print一下,我们来一个to啊students我这一保存,我们来看原来那个列表有没有变化,哎,没有任何变化。
08:39
啊,所以注意在切片获取元素的时候,它不会对原来列表产生影响啊,它不会,哎哎不会什么呢?哎不会影响我们原来的这个列表啊,不会影响原列表,但是因为我们现在没有赋值,哎你对切号赋值的时候会影响,但是现在它不会影响啊,现在不会影响好,那这个是不是非常简单呀?哎要有了它以后,我们就可以获取到我们列表里的指定元素,你想获取谁,你是不是就能获取谁啊哎能获取谁啊那注意了,我们来说一下我们的开始和哎起始和结束位置,哎,那所以哎都可以省略,不写什么意思,看这啊,我把四不写了,直接写一个一冒号,也就是说我这是不是没有写结束位置,不写结束位置来看效果一直行,猪八戒沙和尚,唐僧蜘蛛精白骨精什么效果,是不是一直截取到了最后啊,哎,最后啊。所以注意如。
09:39
如果什么呢?如果省略我们这个结束位置啊,省略省略结束位置则会一直什么呀?诶,截取到我们的这个最后啊,一直切片切到最后,那现在再来看啊,我们这复制一下吧,上边先住了,我这来什么呢?还是写一个三吧,一冒号三效果是猪八戒和沙和尚对吧?我把开始位置省略了,不写开始位置,我们这儿一直行走一个孙悟空,猪八戒沙和尚,所以如果什么呀?如果省略我们的,如果省略我们这个开始位置则会什么呀?哎,则会从第一个元素开始截取,开始截取啊,所以注意你这写个不写就相当于从写个零,你这不写就相一直截取到最后啊,一直截取到最后,这个就是我们说的一个切片啊,注意,开始,起始位置和结束位置都可以省略啊,起始位置和结束位置都可以省略。
10:39
好,然后啊,还是啊,我们这里边儿的起始结束也可以传副值啊,你传副值也行,跟这是一样的,传副值就是从后往前数啊,从后往前数,这我就不多说了啊,这我就不多说了,还有一种比较特殊的情况,还有什么特殊情况呢?哎,你这个开始结束都不都省略啊,开始结束都省略我们这来看。是不是从头到尾都截取啊,哎,都截取啊,所以注意啊,如果如果开始位置和我们的结束位置全部省略。
11:13
诶,则相当于创建了什么呢?诶,创建了一个我们这个列表的一个副本啊,创建了我们这个一列表的一个副本,如果你把起始位置和这个截束位置全都省略,那这个就相当于什么呀,你把这列表给它复制了一遍,注意,虽然看起来一样,但是这两个东西是两个列表啊,两个表,但是就相当于是复制了一遍啊,相当于复制一遍,好,这个是我们说一个切片,就这么两个东西,非常简单啊,获取一个子列表啊,子列表,然后再往下说,还有一个我们说了我们切片的语法呢,我们还有一种语法,除了这种起始结束,我们还可以再传什么呢?第三个值我们叫做一个不长啊不长,刚才不长我没有写是吧,在这儿我们还可以写一个不长,不长是干嘛的,我们直接看效果啊,直接看效果,我这来一个这个parent print,我们来什么呢?哎,我们来一个students,来一个中号,我来一个零冒号五从零开始。
12:14
五结束,012345是不是一直就是没有白骨精对吧?没有白骨精,我们这一直行没有白骨,没有白骨精是吧?一直截取到了蜘蛛精,那现在看着我这直接冒号来个一,这个一就是不长啊,这个一就是不长,我们先看效果走一个没有任何变化啊,没有任何变化那就是什么呀?诶默认就是什么呀?诶一啊默认步长就是一,那步长是干嘛的?哎,步长表示我们这个什么呀?诶每次获取元素的一个什么呀?间隔啊,每次获取元素间隔默认值是什么呢?默认值是一什么意思?默认情况下它就每隔一个截一个什么意思啊,你不是从零到五吗?012345到五,不包括五从零开始对吧,零是一个,然后干嘛呀?步长是一往下跳,一个跳过孙悟空,下一个是不是要猪八戒了,然后再跳个猪八戒跳谁呀,杀和尚了再跳变成谁呀,唐僧再跳谁呀,蜘蛛精你就什么呀,他是每一次跳。
13:14
一个每次调到下一个对吧,调到下一个,那现在注意我如果不长变成了二,不长变成二了,那注意这时候就变了,就不是下一个了,变成下两个了,什么意思,还是从孙悟空开始下两个,下两个他会直接跳到谁呀?沙和尚啊,沙和尚完事还是跳下两个,下两个直接跳到什么,跳到白骨精,而我们这是零到五,是不是又不包括白骨精啊,所以这个时候你这么一截取就变成了什么呀,孙悟空和沙和尚啊,孙悟空沙和尚我们这一保存一执行,呃。孙悟哦,我这写错了,孙悟空下两个跳到沙和尚,沙和尚跳两,下两个是不是跳到蜘蛛精啊,哎,我才是等于下三个了对吧?哎,跳两诶下两个也就是不长是二,所以这时候结果就是什么呀?哎,就是我们这个孙悟空沙和尚还有蜘蛛精啊蜘蛛精,所以注意啊,他这不长什么意思,默认是一个隔一个走一个,隔一个走一个,而当你变成二的时候,是隔两个走一个啊,隔两个走一个,那你如果写成三个是什么?步长为三就是什么呀?间隔三个走一个啊,间隔三个走一个,三隔什么呀?孙悟空直接跳到谁呀?唐僧,唐僧后边是没了,哎,没了,这时候就是孙悟空跟唐僧啊。所以注意在这里你可以指定不长,也就说你可以隔几个取一个,隔几个取一个啊,这就是我们说的一个不长,然后再往下看啊,再往下看,我这复制一下ctrl shiftd啊复制我这都省略了,都省略了啊,前面都省略,这是表示从头截取到尾啊,我这写一默认情况下这没有变化对吧?没有变化,我如果写二什么效果,你先看看什么效。
14:47
不写二是不是隔两个取一个呀,那就是孙悟空沙和尚蜘蛛精对吧?这里执行孙悟没有保存啊,保存一下再执行孙悟空沙和尚蜘蛛精,那我如果写三个呢,就隔三个举一个是吧,三个举一个呢,就是孙悟空唐僧,然后就没了。
15:04
啊,还是没保存啊,CTRLS保存啊,快捷键这一执行是不是孙悟空跟唐僧啊,诶孙悟空唐僧啊,所以注意这个是我们说这个不长啊不长,然后这里边我们接着来说我们的什么呢?不长。哎,可以是负数啊,不长,哎,不长,不能是零,哎,不能是零,但是什么呢?但是可以是负数,也就是说你这注意了不长,你不能写个零啊,你写个零是不行的,一执行是不是报错了,诶,S less step s less就是切片意思啊,S less就是切片意,S less step cannot be zero,诶less不长,不能是零啊,不能是零,所以注意不能是零,但是可以是负数,那负数什么意思呢?来一个print呢?还是students来一个这个诶冒号冒号来一个。负一啊负一看效果我直接一执行走一个干嘛了,是不是把我这列表倒过来了,哎白骨精蜘蛛精,唐僧沙和尚,猪八戒孙悟空倒过来了,那负数什么意思?哎,我们来说一下,哎,如果是负数,哎则会什么呢?从我们这个列表的后部。
16:19
哎,像什么呀,哎,像我们这个前边取元素,说白了就是你是负数,我就什么呀,我就哎倒着取啊,我这默认是正数,我从前往后取对吧,如果是负数,我就从后往前取啊,倒着取啊倒着取好了,这个就是我们说的一个切片啊,其实非常简单,就这么三个值啊,哎,其实哎结束还有一个布长,这三个值根据不同的需要,我们传不同的值就OK了,那这个自己来把这个值来操作一下,自己来熟悉一下啊,来熟悉一下,我们来停一下。
我来说两句