00:00
好,刚刚说完了这个range,然后接下来我们再来说我们这个列表里边的,呃,最后我们要说的一个对象啊,我们这个零九叫做一个元组,元组点一个PY,那之前我们说了是吧,我们这个序列里边呢,这个分成两大类,一个是可变序列,还有一个是不可变序列,那元组就是我们说的一个不可变序列啊。元组我们叫做一个tople,叫做一个turle turle啊我们这个元组,那元祖呢是什么呢?哎元组呢,其实它就是什么呀,哎元组是一个这个不可变的序列啊序列,那它的这个操作方式呢,操作方式诶基本上基本上啊和我们这个列表是一致的啊基本上是和列表是一致的,所以什么呀,哎所以你在操作元组的时,哎操作我们元组时,哎就把什么呀,哎就把我们这个元组哎当成什么呀,哎当成是一个不可变的列表就OK了啊就OK了,你就把这个原子当成一个不可变的列表就OK了啊没什么可新进的,跟那个列表是一模一样的,就是除了那些修改的方法,比如说你想给索引赋值,你想给切片赋值,你想调比例,你想去调什么,那些什么隐私喷的那些会导致对象改变的方法,这些方法元组都不能用啊,原子都不能用。
01:27
剩下的你说我索引也好,切片也好,这些东西什么印也好,Not印也好,这些东西在我们的元组里都可以用啊,都可以用,开始我们说的那些通用方法,元组都是可以用啊,元组可以用,跟列表的操作基本上就是一样的啊,基本上一样,所以这个时候我们说什么时候用元组,什么时候用列表,我们一般就是什么呀,哎,一般我们这个当。我们希望我们这个数据。数据不会改变时啊,不改变时,哎就什么呀,使用我们这个元组,其余情况都使用列表,哎都使用列表,所以整体来说我们使用列表的情况会比较多,元组相对来说基本不咋用啊,用的比较少,比较少啊比较少的,那这块我们来说一下元组我们来怎么用啊怎么用,那元组的话我们来先用来说创建元组啊,创建元组,创建元组什么呀,那我们之前说的是创建的是这个这个列表是用的是中号,而创建元组呢,我们什么呀,括号啊,使用我们这个小块,哎来创建我们这个元组,直接来一个哎,来一个这个MYT。
02:39
等于一个这个小块,那这里就创建好了一个元组,直接打印一下,Print一下我们这个my couple,我们直接一执行,诶是不是显示一个括号啊,诶显示一括号,还是我们来看一下的一个类型type,我们这来一个my ta这一保存,我们再一执行class,什么class t啊class tale,那这个是什么意思啊,我们来看一下这个表什么意思,哎,括号这个叫做一个什么呀?空元素这里创建了一个这个空元组,这个元组里干嘛呀,什么都没有啊,什么都没有,这就是一个空元组,那好,那我现在要不想要创建空元组,我想往元组里边写东西怎么办?哎,这东西那跟我们这个列表就一样了,MY里边我们来等于什么呢?
03:25
等于一个括号,我直接一逗号二逗号三逗号四逗号五,这个就是什么呀,创建了一个五个元素的元素,哎,五个元素的一个元素直接来看效果啊print呢,我们来一个这个MY啊MY。保存一下我这一执行是不是12345啊,哎,12345同样在这儿,你也可以通过索引去操作,一保存走一个,是不是取出一个四啊,哎,取出一个四,但是注意不能怎么办,你不能这么写,我来一个my ta中号一个三等于一个十,是不是再给元组赋值啊,你这一执行就完了,报错了,哎,Top object does not it这个就是这不支持这个,呃,对他这个。
04:09
元素进行赋值这一块一定要注意,元素是不可变对象元组啊,元组是不可变对象,哎,也就是说你不能尝试为我们这个元组中的什么呀中的元素哎,重新复制啊,你不能对原子中元素重新复制,但是你可以改什么呀,这变量你现在是这个元组,你可以改一个元组,但是你不能对这个元组,你不能去改这个对象,你只能去修改变量值,这个对象你是改不了的啊,对象你是改不了的。好,那这个是我们说元组这么一个使用是吧,这我们不多说了啊,剩下切片什么的都一样,我就不再展示了啊,了解一下就OK了,然后再看啊,这是一种创建方式,我们还可以怎么办呢?还可以怎么办呢?那注意了,当我们这个元组不是空的时候。当我们这个元组,哎,不是空元组时。
05:06
哎,我们这个括号么?哎,括号可以省略啊,括号可以省略,也就是说你完全可以写一个MY,一个top等于一,诶我写一个十二十,哎三十四十,这也是一个元组,我们直接打印,呃,直接打印一个my top。MY,然后我们这儿也来一个这个一个MY。一保存我们这一执行是不是也是元组,哎也元组,那就是十二十三十四十,所以注意你这个括号可以省略啊,可以不写,一般情况下就是都可以不写,但是就是括号的好处就写完了,结构清楚一点,你不写括号它也是一个元组啊,写不写都一样啊,写不写都一样,但是这里面注意啊,这里面注意如果什么呢?如果元组,哎不是空元组啊,空元组那它里边。
06:04
哎,至少,哎要有一个逗号啊,至少要有一个逗号,有同学说老师我这元组里边我就一个元素,我就一个元素写一个40,直接写个40行不行,很明显不行,你加上括号也不行啊,加上括号也是错的,为什么?因为他没有办法区分你这到底是一个值还是多个值,所以像这种情况,如果说你这个元组里边只有一个值,你40后边也要跟一个逗号,表示它是一个元组,这样一执行才是一个元组,懂意思吧,如果你不写这个,你不写这个一保存它是一个什么,是一个整形了,它是一个整形了,所以注意啊,元组里边即使有一个值,就是你要确保这元组里至少有一个逗号啊,至少至少有一个逗号,不然它就不是一个元组啊,那你加热块也一样,加块你得保证至少有一个逗号啊,有一个逗号,那这个就是我们这个元组非常简单,其他的用法跟我们这个列表是一样的,然后元组呢,还有一个特殊的用法,特殊用法我们来看一下啊,看一下我这来一个my table等于个十二十。
07:03
30 40这个元组里边,我们来还是打印一下,直接来一个这个my ta my ta,我们这一保存一执行12时,34时一共有四个元素,那我可以怎么办呢?看着我可以这么玩,我直接A逗号B逗号C逗号D等于一个my tab等于my table啊我让四个值等于my table,那这个时候我们来看一下我分,我来打印一下这个A,打印一下A,我们来看A是多少,分别打呃就打分别打印吧,呃,A,然后呢,这来一个。这么写吧。等于。然后我这来一个A,然后我这复制一下啊,复制一下这我们来一个什么呢?B等于我这来一个这个B,然后这里我来一个这个C等于啊,这是一个这个D等于。D等于啊,保存abcd啊四个值,我这一执行,A等于十,B等于20 C等于30 D等于40是这么一个效果,那这叫这什么意思啊,这什么意思,那这个我们称为什么呢?这个是我们叫做一个元组的一个,这个叫做一个解包。
08:17
解包啊,或者也可以叫结构是吧,或者或者可以叫解构。解构什么叫解包,什么叫解构呢?那这个东西指的就是什么呀?哎解包哎指的就是什么呢?哎,将我们这个元组当中的元组当中的每一个元素。每一个元素哎,都赋值给一个变量啊,每一个元素都赋值给一个变量,所以我这么写,让abcd分别等于等于MYT,这什么意思?就是让A等于十,D等于20 C等于30 D等于40,这是一个解包,这样我们一执行,我们刚才已经看到了A的值是不是十二十,30 40啊,哎,这样一个解标啊,将我们这个元组当中的这些值分别的赋值给一个什么呀?一个变量啊,一个变量,这是一个很方便的一个用法啊,很方便一个用法,怎么方便呀?那其实最体现出的一个优势是什么呢?就是有的时候我们需要交换两个变量的值啊,比如说我这有一个这个诶,AA等于一个这个100,然后呢,B等于一个什么呢?B等于一个300啊,这我们打印一下啊A,哎打印一下A,打印一下B,这一保存,我们这一执行一百三百对吧,一百三百,有一些情况下,我们需要去交换AB2个变量的值。
09:41
A和B的值,那这时。哎,我们就可以利用我们什么呀?哎,利用我们这个元组的一个结构,那这个东西啊,像这种交换两个变量的值,在我们其他原理有一原理还挺麻烦的,哎,有的时候你得整一个中间量,你得通过算法去交换,挺麻烦的,但是在我们的Python里就非常简单了,怎么交换,我直接这么一写来什么呢?A逗号B等于一个B逗号A啊,A逗号B等于一个B逗号A,前边是整的两个变量,后边其实什么呀?你看我写逗号了,这其实就是一个什么呀,元组啊元组,然后我去解包,实际上就是把B赋值给A,然后把A赋值给B,这时候你再打印,你会发现A就变成了300,而B变成了什么呀?100是不是掉个了,那就掉个了啊,所以在这里我们可以用这个解包这个特点来干嘛呢?来交换这个两个变量值啊,两个变量值,那这是一个比较典型的用法,其他的其实倒相对来说倒没那么多啊,没那么多,那你就知道解标的操作啊。我可以把元组当。
10:45
通的这个值,赋值给对应的一个变量啊,赋值给对应的变量,那这个时候呢,我们这个哎解包呢,我们就就说这么多了啊几本我们就说这么多了,那其实还有一种特殊的什么情况呢?看这还有一种情况就是是这样的,我们还是啊我把这买tab我就复制一下,现在我这里边有12344个值对吧,那四个值,那我有时候这样,我来一个A逗号B,哎等于个这个买ta啊A逗号B买他等于买ta,那这个时候你会发现一个问题啊,什么问题啊,A逗号B等于买他。
11:25
那现在我这里边是四个值,四个值你只给了我两个变量,是不是就不够数了,哎不够数了,那这个时候我们来打印,诶其实你都不用打印啊,我们直接看啊一执行走一个搞好了报错了吧,诶叫什么呀?诶too many values to unpa,就是解包啊,就是太多的值就去解包,就是你这个值啊太多了,而你这个变量干嘛呀,不够啊,变量不够就这么一个意思,那这个时候你要怎么办?那一种方式你干嘛呀,你把这个C跟这个什么呀D,你给它补上是一保存是不是就行了,那就行了,但是问题是,那如果说我假如说我这个元组里边有100个值,我可能想要前十个,100个值我想要前十个,那我我写十个变量,我后边是不还得再写90个呀?哎,非得把这100都写上,那这样是不是太麻烦了,哎,太麻烦了,那我可以怎么办?我可以在这啊,在C这我可以写一个,写什么呢?写一个星号C啊,在C这我给它加一个星号,这时候我们看效果。
12:26
走一个是不是也没报错啊,哎,没报错,那这C是什么效果呀?哎,在这我们打印一下普润一下这个C。等于我这来逗号来一个C,打印一下C,我们来看走一个C是什么,C是不是三十四十啊哎,变成一个列表啊,三十四十变成一个列表,所以注意啊注意哎我们这个在对一个这个元组进行解包时,哎进行解包时我们这个变量的数量,变量的数量必须和元组中什么呀,元素的数量一致,哎,元素的数量一致,也就是说你这一块你有几个元素,你有十个元素你就有十个变量,有100个元素就得有100个变量啊变量的数量必须和元子中元素的数量是一致的啊一定注意必须是一致的,那注意了,我们也可以什么呢?哎,也可以在我们变量前边干嘛呢?哎,添加一个这个什么呀,添加一个星号啊,添加一个星号,那这样我们这个变量将会获取所有的什么呀,剩余的元素,哎获取什么呀,诶将会获取。
13:35
本组中所有剩余的元素啊,所有剩余元剩余的元素,那注意啊,它最后返回的是一个什么呀?是一个列表啊,最后它返回的是一个列表,所以我这个写的什么意思?AB逗号星C等于买table,它干嘛呢?它让A等于十,B等于20,剩下的30跟40存到一个列表中,然后给谁呀?给C,你后边即使剩100个最后也干嘛也都给C,剩1万个也都给C,所以就是什么意思呀,第一个给AB,第二个给,第三个给,不是剩下的干嘛都给C啊,剩下都给C,注意它是保存到一个什么呀?保存到一个列表供给他啊,保存到一个列表我给他的啊这一种,那这里边我们其实还可以干嘛呢?我来一个A,诶我来一个逗号,我来一个星号B,然后逗号C是不是我把这个星号写到中间了,哎,写到中间了,我们来看效果啊,这我来一个这个分贝式分值打印吧,A等于一个A,然后我们这来复制一下。
14:38
这来一个这个B等于一个B啊,我们来看B,这个时候其实你大概我觉得你应该也能猜出来的什么效果呀,A等于十,C等于40 B等于20跟30,那我这么写什么意思呀?哎,第一个给A,最后一个给C,中间有多少全都给,全都给B啊,全都给B也可以放到中间,那开头行不行啊,哎,我们来试试啊,星号A。
15:02
逗号一个B,逗号一个这个C等于一个这个买tap啊等于买tap,这直接一保存,我们来看效果走一个干嘛了,诶倒数第二个给B,最后一个给C,前边的都给什么呀?诶都给A啊都给A,所以注意啊,这东西是可以放位置的啊,放前后都行啊都行,根据需要去调整位置都可以啊都可以,但是有的时候你可能想这么写。星号A,星号B,然后来一个C,这样行不行,直用一下看效果一直行干嘛了,是不是报错了,哎报错了两个这个星号这个表达式在这个在这个这个这这里边是吧,语法错误啊语法错误,所以注意这个是什么呀,这个是错的啊,这个是错的不能什么呀,哎,我们不能哎同时出现什么呀,哎两个哎或以上的什么呀,这种星号变量啊,星号变量一定注意啊,只有一个,你搁前边,搁后边,搁中间都行,但是你绝对不能写什么呀,绝对不能写多个啊,绝对不能写多个,好那元组呢,我们就说这么多是吧?哎,它的功能跟这个列表都是一样的,包括像什么便利对吧,索引啊,切片这些都是一样的,他们都是通用的,甚至说这种解包这种操作,它是不是说只有元组才能进行啊,哎,也不是啊,也不是所有的序列我们都可以进行去解包。包括说现。
16:28
但我们是在对这个元组进行解标,对吧?你也可以干嘛呀,我们来看看吧,我直接来一个A逗号B逗号一个C,呃,星号C啊星号C,我等于什么呢?等于一个一,诶等于一个中号,我们来一个一逗号二逗号三逗号四逗号五逗号六,随便写一个啊一保存我们这一执行是不是也可以解包诶也可以对我们这个列表进行解包,或者呢,你说我来个字符串吧,哎,来个字符串,我直接来一个这个什么呢?来一个这个哎,Hello w LD word,我们这一执行哎租串是不是也可以解包,哎,所以注意啊,不光是元组能举包,我们这个序列呢,也可以啊也可以,好,那这就是元组,我们就说这么多了啊,那总之呢,元组跟列表一模一样啊,一模一样,除了不可变,剩下的全都一样,所以你就记住了,除了那个列表,那些不可那个改变的方法,什么改通过索引去赋值啊,什么切片去赋值啊,什么a pen的色,除了这些剩下的。
17:26
全都一样啊,剩下的全都一样,没什么难的,但是原组用的不是那么多,主要还是以我们的什么呀,列表为主啊,列表为主,好,关于序列的知识呢,我们就先说这么多,当然还有一个字符串,我们没有具体去讲,字符串呢,稍微的多点东西多点,我们放到专门一个专门一个章节再去说这个字符串的事儿,好,我们来停一下。
我来说两句