00:00
好,我们回家上节课内容啊,上节课我们做了元祖是吧?元组可以写歌,欢乐颂,或者说把阿拉伯数字变成中文大写数字,用的都是元组,而不是列表。那为什么用元组呢?因为元组是不可变的是吧?更适合表示固定的序列,定下来不能变吗?还有呢,就是元组比列表更少占内存。元组是不可变的序列,列表是可变的序列。那啥是序列呢?我们点开这个链接,我们可以看到Python的官网对序列的一些通用的操作。首先呢,就是是不是在里边儿。有是不是不在里边儿,序列的加法,序列的乘法,序列的切索引,序列的切片,还有长度最大值,最小值这些东西。那我们来具体来看一下什么序列,OEZ加上字符的序列和们字符串,首先O是一个字符串,它是不是在这个o ec这个字符串里面呢?是的,OE在不在这个字符串里面也在的。
01:07
那么OS他不在是吧,那OS是不是不在,它确实是不在,那这就是印的这种操作。有两个字符串,一个是O1Z,一个是O2Z,让第一个加第二个得到什么得到连在一起,它的规律和列表是一样的。一个0加上一个1,它就是0 1,那如果两个列表项呢?一二会是什么?0 12,那如果是元组会怎么样?PAPA相加,它为什么得1呢?0它是0经历一个自动解包的过程,但是01再加上一个0,这个是个元组是吧。这个是个什么?这个是个元组,所以如果说你这里边儿割了0,它是整数类型,但你打逗号就不一样了,打逗号它就是元组类型,因为它知道是个元组,否则这个0会自动解包,自动解包,你加100层括号,它也会自动解包是吧?它还是个整数,它不是元组。
02:14
我们再看看这个乘法,S2是2ZS2×3等于多少呢?等于三个orc列表是不是这样,1×3是没错的元组呢?0×3就相当于3×0,它其实是有交换律的,乘法交换律嘛。算复杂了,S1O1ZS2O2Z,然后3×S1加上一个S2。这得到什么呢?那就是三个O1Z,一个O2Z,那三乘以一个什么括弧里面S1+S2,你看乘法是乘法,加法是加法,位置都没变,但是有括号的要优先,O1Z o2Z。它连在一起翻3次是吧?还有一种是字符串独有的这个方式就是O,然后加一个easy,中间用空格连接,它就会自动拼合。
03:10
但是如果说你要想跟这个S1拼合,它就会出现语法错误,两个常量字符串拼接,才可以再看一下这个切片和索引。S10。这样的一个字符串,第0个。1。二三个第5个第4个第5个就直接崩了是吧,第5个就直接崩了,那么他为什么?因为它总共就012345个逆向怎么办?逆向就是倒着来,我们先看一下S负一是吧,负二。-3-4。-5,那-6有没有又崩了,为什么那头负向那头又崩了是吧?在范围内才可以,你的所引就不会出errorr对吧?你不能怎么样,Out of range.
04:03
Out of range就不就崩了是吧?不得在可控范围内是吧?你随便发起战争等等着死是吧?那么我们再看切片,S是这个东西,S什么一冒2 S一冒2是什么呢?是E,为什么是E呢?因为它是从一开始到二结束,要一不要二是这么一个感觉对吧?1帽3呢,就把A给加上了是吧?一帽4呢,就加上1毛5加上百,这怕不怕超,这不怕超是吧?这不怕超,这超了之后反正就切过去吧,你把这后边放开其实也没问题,负数切边什么样呢?比如说我们来一个S,这回来一个-4冒负一是什么呢?E ass相当于什么呢?-4是谁?负四是E,负一是谁呢?是Y,从从E到Y,但是呢,要1不要Y就是ES嘛,把它转换成正数是谁呢?-4就是谁,是1。
05:00
Y是谁呀?Y就是4要1不要4是这样的,想要Y,那就是到5,如果负数也想要,没有比-1更大的负数了,怎么办呢?直接放开0是不行,0它没有了,直接得到了easy这样的一个东西。相当于放手再看看步长,S是OESY2的步长,两格一跳0冒5来跳,这怎么跳呢?O之后跳过E到AA,跳过S到Y。那这是什么,一隔一个跳一个,我隔俩跳行不行呢?O跳到谁跳到S,然后就直接蹦出去了,隔3跳呢。步长是4,那就是直接跳到外搁5个跳,一步跳出去是吧,一步跳出去步长嘛,一步有多长,步子迈的很大,那就直接跳出去了。不长,可以是负的吗?我们试一下。
06:00
不长,是负的帽帽。Stop跟都是默认的,从头到尾的,然后负一倒着来是吧,倒上来。倒着来,我们来个复杂点的,来什么呀?S1是什么?是分久必合,合久必分,你看这个分久必合,合久必分。倒着来是什么呀?分必9合。何必9分是吧?你不像我们以前那个回文诗是吧?上海自来水来自海上。哎,不一样,我们再试试中文的,这个有意思啊,是什么呢?说S等于道,可道非恒道。要想截取横道?那我应该怎么截呀,我们看这么一个图哈,横到4往后是吧,4到头吧。那肯定是可以的,那我们先走起来,S4吗?这是没问题的,还可以怎么截呢横道。
07:01
横道,那这个道呢,就是跳两隔一个跳一个嘛,不长为负二。S, 然后从从谁来,从4来。然后不长呢,-2。我们看一下。出来横道道,为什么呀?横道道。横道的这个多了一个道互相就就就就到这儿结束,那截止位置是几?截止位置是1是不是就成了,那如果说我就想要这个4直接跳到这个倒。那就是1234,直接跳四格呗。直接跳-4对不对,那这块就别H出着它了,横道那这个就是可以各种截出横道的方式。那如果指接到字儿呢,那就是找它的位置对吧,找它的索引了是吧。找它的索引,不管是第0个还是第2个,还是第5个,都可以截出来。
08:01
截出来这一个字符。但这一个字符还是一个字符串吗?它还是不是我们用type的方式去观察一下S2,它还是一个string。就是这个串儿上虽然只有一个字儿,但它还是个字符串,就像串儿上只有一个鸡排,但是呢,它还算一个鸡排,串儿单字的字符串是单字儿,但是呢,它是一种特殊情况,这种特殊情况呢,不足以打破规则。潘森之禅说了,Special cases are not special enough to break the rules.是不是特殊情况是这这一个他怎么也算序列怎么怎么算先后没有,甚至空串儿都是四五串儿。啊,也得按照字符串的规律走。我们再来看什么呀,再来看这个S是,我说S是o easy, 它的长度是5是吧,最大值是多少呢?最大值是Y。它最小值是多少呢?最小值是A,为什么呢?因为字符串是字符的序列,那比较到的是字符的大小,那字符怎么比较大小来着呢?用序号比较大小,Y的序号121最大,A的序号呢是97最小。
09:18
那用index可以找到这个索引位置吗?那就是索引还是这套东西对吧?s.index.上次我们找元组的索引,现在找什么字符的索引?O在什么位置是吧?O在什么位置,O在第0的位置是吧?那我从第一个位置往后说,0后面还有没有O呢?那那那那那它是没有了,但是如果是O1Z2Z呢。我再去看。1后边还有2那5后边还有没有,5后边没有那一个,一个往后找吗?那总共几个呢?说打南边来了个喇嘛,手里提了5斤鳎嘛,打北边来了个哑嘛,腰里别着个喇嘛,南边提了鳎嘛的喇嘛要拿喇嘛换北边别喇叭的哑叭的喇叭,这是一个说总共几个喇嘛?9个,总共几个鳎嘛?11个,总共几个哑叭?
10:17
谁词频最高,喇叭最高,喇叭最高,它是可以统计单个字符,也可以统计多个字符,喇叭就是俩字符嘛。这就是这么一个通用的方式,那我们可以看到什么呀,这个common sequence operations.序列类通用的操作方式应是不是乘圆、加法、乘法切片,索引长度、最大值、最小值和和,看位置,还有总共的计数。这就是序列类的这个一些特性字符串全都好使,而且还有一个什么呀,还有一个。分别赋值,平行赋值,比如说0~1 AB其实实际是可以这样赋值的,那我说不是这种序列是什么序列,是一个01这样的一个序列,那AB是不是也可以把这字符串重新输了。
11:13
但如果是010。就会发生什么to many value to ipad需要解包3个东西,但是呢,他期待2个东西,为什么期待2个?前面是两个,你得对应上是吧?前面你也得对应上,是后边你也对应上,全都得对应上,如果说前面3个,后面2个,或者前面2个后面3个都不行,这叫什么平行,你得挨着对上。那这次呢,我们了解的是序列的通用操作,有很多操作。什么是序列呢?序列,序列有序的排列对吧,但是有没有无序的排列呢?我们下次再说。
我来说两句