00:00
那么我们继续来讲解我们Python相关的内容,在本章中将为大家讲解我们新的数据类型列表与元组的详细介绍。首先呢,打开我们的工程项目,为了不耽误大家时间,我本章节的工程项目已经先创建好了,来,右键新建一个文本文件,用来记录一下我们列表相关的内容。好了,打开一下,然后呢,OK,创建成功,在这里边我们先来了解一下什么是列表,我们之前说过叫列表就是一组有序数据的组合,一组有序数据的组合,说白了它是一堆数据,不是一个,而且还有顺序是不是,所以这就是列表,而且呢,列表中的数据还可以修改列表中的。列表中的数据。可以修改,这就是列表的一个基本定义好了,那我们既然知道了概念,就得来看一下列表是如何制作出来的是不是,所以下面为大家讲解的是列表的定义啊,就是怎么样声明一个列表啊,叫列表声明吧,不然不太好听好不好?列表的声明我们如何声明一个列表呢?这个时候呢,我们就得看一下你要声明什么样的列表了,哪种都可以,就看你的需要了。来,首先我们写文件给大家来试验一下麦扣的六下键零一文件。
01:26
点击OK。好了,然后我们来看一下定义列表。定义列表先为大家定义一个空列表。来空列表。好,在定义的时候呢,我们给大家写一个变量行不行,比如说叫list VR啊,不要叫list,因为list是列表的什么呀,这个类型它已经被占用了啊,至于为什么我们可以在讲面向对象的时候给大家说,所以你千万不要用类型的关键字啊来当变量名,我们可以加一点东西,是不是类VR,如果创建工列表,只需要使用中号就可以声明出来了,那么这是一个空列表吗?来,我们来打印一下这个变量的数据类型和它的值行不行,那在这里边先打印类值吧,List v,它的类型type套上括list。
02:13
VR来右键运行一遍程序,大家可以发现,哎呀,原来真的是一个列表类型,里边什么都没有,是不是空列表啊,这是第一种方法啊,这是第一种方法,那么我们说了它有第二种方式,我们可以采用列表转换的那个相关函数来创建,就是直接使用list s VR等于list括号的方式,如果我们直接使用了list这个函数的话,那么也可以直接创建一个空的列表,来我们打印来看一下是否正确呢?List we are。逗号,我们在tap套上括号啊,Type套上括号。List VR,然后呢,在这里边为了影响防止啊,不用防止啊,直接运行吧哈,本来还以为会这个让大家看着出现什么异常哈,主要是怕大家什么呀,认为变量重复使用有问题,但其实大家也清楚变量重复利用只会重新覆盖,也不会影响的,所以大家可以看到这两种方式是不是都可以得到控列表啊,这是定义空列表的方式,二选其一,一般情况下我们使用第一种方式比较方便一点啊,那除了声明空列表之外,我们还可以声明什么呢?带有数据的列表。
03:23
声明带有数据的列表。也就意味着我声明的列表中除了什么呀,这个列表的结构本身里边还有一些数据组合到一起是不是?那我们可以怎么写呢?带有数据的列表是这样,声明的变量等于中括号。如果你有数据就在这里边写上啊,直接写上数据或者叫叫做值就可以了啊,有值你就直接写,并且多个值之间使用逗号分割就可以,值并没有什么上限要求,那这是用什么呀格式的方式声明的,另外呢,我们也可以使用什么呢?也可以使用这种函数的方式进行声明也可以啊,那就是变量啊等于然后呢,List套上括号里边放上值也是可以的,这种方式也是允许的啊值,不过大家选的时候应该都会选第一种吧,是不是更方便啊,值逗号值逗号值,然后加点加点好了,那这样的话,我们的带有数据的列表声明就这种格式来为大家写一个好不好?来在这里边我们声明一个带有数据的列表啊。
04:28
来站里边,哎,Sorry,回车不太好啊。好,注释一下带有数据的列表。好,我们在里边为了操作方便,把前面注释掉啊。好,然后注释一下,往下一拉,然后呢,带有数据的列表,我们起变量名依然叫list VR啊list VR列表微量等于中国二里边,我们可以在里边给大家定义多种什么呢?计算机语言,比如说PHP呀,是不是定义我们的逗号啊,再定义一个javascript。
05:00
然后逗号再定义一个什么Java呀,然后再定义一个什么Python啊,是不是你可以定义多少都可以啊,没有关系,那这样一来的话,就定义了带有多个数据的列表,当然列表中不一定非得说,哎,我只能放字符串,其他的数据类型你随便放。随便往里放啊没问题的,好了,那我们打印一下看是否成功呢?把的变量类似VR,同时输出它的类型。逗号type里边写上面的list VR就可以来,我们用右键执行一遍,大家会发现是不是带有数据的列表类型也可以创建成功了,是不是,那这是第一种方式,第二种方式则使用列表函数,第二种方式我们可以直接list VR,等于直接写上list函数套上框在这里边呢,就把什么呢?把你列表中的数据以参数的方式往里传入就可以了,比如我写一个什么呢?Java啊,写上我们要传入一个Java逗号我们要传入一个C加加是不是逗号我要传入一个C,然后逗号我要传入一个c shop逗号啊,我要传入一个C,然后呢,逗号我再穿一个666,是不是666好搞定,那么这个时候呢,我们也可以得到一个列表类型的来list v。
06:15
卡印它的类型type list VR,我们右键运行程序,你会发现,哎呀。他说了这个有点问题啊,我这是中文符号吗?并不是啊,List什么什么一个参数把它给录了啊哦,这里边要求只能给一个参数,注意这里边要求只能给一个参数啊,而我们给了五个什么呀,而我们给了五个行参,所以这样啊,十参啊,这种写法不太正确啊,它应该是要求必须转入一个其他的容器类数据,然后通过我再转换成一个列表,那这样的话我们可以传一个元组进去啊,我们可以在里边传一个元组进来,看见了吗?他说了啊,它list只能接受一个参数,但是我给了五个,就意味着list这里边必须给一个容器的数据,然后我转化成列表,明白了吗?所以这里边右键运行一遍,你看这次就可以了,这次是不是就可以了,所以这个稍微改一下,我记错了,刚刚不好意思啊,我们在里边需要放一个容器数据啊,需要放一个容器类的数据,那在这里边它的本质上其实就是什么呀,类型转换板是不是类型转换啊。
07:22
就是类型转换,那接下来的话,我们还是使用第一种方式更为多一点,好了,这就是列表的声明,当我们有了列表之后,就可以对列表进行一些操作,比如说获取列表中的值啊,删除列表中的值啊,修改列表中的值啊这一系列的操作。所以我们下面为大家讲解的是列表的基本操作。列表的基本操作,那基本操作包括哪些呢?包括我们叫做访问列表中的值,然后能干什么事呢?添加列叫做。修改啊,修改列表中的值,删除列表中的值以及添加列表中的值,列表中的值啊。
08:10
列表中的值啊,这就是我们的基本操作,同时还会给大家讲一下什么呢?删除变量啊,删除变量,而且不单单说只能删除列表变量,什么变量都可以删的啊好了,那这些对于这些操作我们一个个来给大家做实验好不好?首先关掉第一个文件,为大家新建一个第二个文件,右键新建一个P文件啊麦下线CODE6下线零二文件。好,创建成功点击OK,然后呢,先为大家讲解一下干什么事呢,列表的。访问操作。或者叫做访问列表中的值,好吧,访问列表中的值。好,那这样的话,我们得先定一个列表是不是好,那在这里边我们先定一个列表,比如说定一个heros heros等于我们写上我们的五虎上将啊,关于。
09:05
然后逗号张飞,然后逗号黄忠。然后呢,逗号马超。和赵云。和赵云好,哎,不是赵样啊,赵云这样的话我们就得到了一个列表是不是好了,为了给大家看我们这是一个列表,我先先把类型给大家打印一下啊,Herros heroes逗号输出它的类型,Tap heroess,好,这样一个的话,大家可以清楚的看到我的一个列表就生成成功了,就生成成功了,对不对?那我现在希望访问列表中的值,那就是访问列表中的某一个值了,因为所有值的访问直接打印是不是就可以啊,Health变量就可以了,那我想访问这里边的什么呢?比如说我想访问这里边的关羽怎么办呢?或者访问张飞怎么办呢?这个时候就涉及到我们列表的一个特征什么呢?列表是一个有序的什么呀,组合,或者叫有序的容器,所以呢,列表其实和字符串一样,它也有自己的索引编号,那在这里边从头开始,第一个数据编号是零,或者叫索引是零,第二个数据索引是一,第第二下一个数据索引是二,以此类推,啊,这是它的索引编号。
10:15
那么大家也知道啊,这个叫做正向索引,对不对,叫做正向索引。在我们这里边儿,除了正向索引之外啊,还有反向索引这么一说,反向索引则是从后往前数,从几开始呢?负一开始意思是负一啊负二然后。负三,然后负四然后。负,这就是我们的反向所引啊,所以这个叫做反向所引。那有了索引之后呢,剩下就方便了是不是。直接什么呀,访问的时候加上索引编号就能获取对应的值了,所以没问题,如果你希望访问某个值的话,它的格式非常的简单,只需要使用什么呢?列表变量啊,或我在这直接写吧,叫做变量中括号里边放上它的索引值就可以,这样就可以获取到对应的数据。我们来试一下,比如说我现在希望访问到张飞,那大家知道张飞的索引值是正向一,反向负四,所以我可以在里边使用h eroos找到它的变量中括里边写上一,那这样的话大家就可以获取张飞的值了,对不对?那以此类推,我们依然可以使用反向所以来进行获取。
11:28
来heros使用反向索引负四来获取对应的值,依然是张飞,看见了没有,所以访问值是非常简单的,那访问值完了之后呢,再给大家讲解一下如何修改这里边的值行不行?也就是说修改我们列表中的值。那列表的终值该怎么修改呢?诶,它的格式是这样的,直接找到我们的。列表中的某一个值,那是不是通过这个变量加索引的方式找到啊,然后呢,如果你想给它值,没有关系,直接等号给它一个新值就可以了,所以这其实就是一个重变量的重新赋值是一样的啊,这个这个操作和变量重新赋值是一样的,所以在这里边你只要知道它的索引了啊,给他重新复一个值就可以了,比如说张飞大家知道啊,别找张飞了,换一个吧,行不行啊,赵云吧,行不行,那赵云大家都知道他什么呀,还有个名称叫赵子龙,是不是人家字子龙嘛,所以叫赵子龙,我现在就希望把赵云改成赵子龙,那这个时候怎么办呢?通过hes h hes中国二写上四找到我们的赵云,然后呢,通过变量重新复制的时候给方式啊,给他写一个来,赵子龙。
12:42
那这样的话修改操作就完成了,那么给大家打印一遍好不好?看一下我们的heroes整个列表中的赵赵云是否是否被改成赵子龙,大家看是不是改成赵子龙啊,然后反向索引依然可以进行这样的操作,比如说我们在这里边儿找张飞吧,呃,找关找张飞吧,行不行,张飞改成张翼德啊,那在这里边直接是heroes中国号张飞的反向是负四,对不对,负四重新复制为张翼德。
13:11
张翼德。好,那这个时候再次答疑列表,你会发现张飞也变成张一德了是不是?所以列表的修改就跟变量赋值操作是一样的,好吧,那继续来看我们的基本操作,除了修改完了之后,我们还有什么呢?删除列表中的值。删除了两分之,这该怎么删除呢?其实也不难知道了,索引我们用到一个新的语法叫Del语法啊Del Del就是d delay的单词的缩写,如果你希望删除列表中的某个值的话,那么你要做的事情其实很简单,找使用Del,然后呢,删除这个变量对应的索引就可以了。来给大家看一下,现在我打印出来的是原先的列表啊,看见没有?哎,Sorry,语法错误哪个地方没啊,下面这个DDL没写完啊,先注释一下啊,现在打印出来的列表呢,是原来的数据啊,12345是不是都在啊啊,那看我现在干什么事呢?注意我要删除黄忠啊,删除黄忠,删除黄忠,那他干什么删除呢?删除黄忠大家也知道黄忠的所有编号是几。
14:16
是二或者是反向负三对不对,那我在这里边直接DL空格H1P的变量写一个负三反向的来右键啊,不不不能右键还没打印呢啊,删除完了之后,我们再次来访问一下这个变量heros,就是列表本身,大家就会清楚的发现黄忠被我删掉了,看关羽张飞是不是就马上黄忠被删掉了,当然删除的时候既可以使用反向编号,正线编号依然可以使用,所以给大家来个正向编号吧,Dl hero正向编号黄忠是二,所以在这里边你写一个中括号二也可以删除黄中,结果是一样,来右键运行一遍,是不是黄忠还是被删掉了,是不是这就是删除我们列表中的值的方式,那么问题来了,你。删除修改访问都有了,那能不能添加呢?我是否可以在这里边进行列表值的添加呢?诶。
15:09
叫做列表值的添加啊。列表值的添加,好的,说这还不简单吗?直接写一个新的什么呀,索引给它一个值就可以了,好了,那我们来尝试一下啊,首先我们可以知道,目前来说它的索引值最大是四,是不是你不能写01234,因为你写的话它相当于修改嘛,所以我在这里边可以尝试这样写he中号写索引五也是加一个嘛,等于一个值,比如说我们把刘备放进去,刘备。那能够得到一个,就是列表中获取的值加一个吗?列表中能增一个值吗?答案是不可以,运行的时候程序会报错啊,它会告诉你列表的索引超出了范围,很简单,简单的说就是列表的值不能通过索引的方式直接增加,所以这个千万谨记啊,列表的值叫做。列表的值不可以通过索引直接增加,这是做不到的,但很多说那不能增加吗?能啊,只不过我们还没有讲到而已,好了,那这样的话,这个列表的基本操作是不是就没什么问题了,是不是啊,删除的时候也是DL语句空格变量句的索引,我们记忆录一下啊索引然后呢,添加的时候我们可以知道不可以使用索引直接添加,不可以。
16:28
不可以。可以使用索引直接增加,然后呢,那我要删除整个什么呢?列表变量本身能做到吗。可以的啊,删除列表变量。变量本身,注意啊,它不单单只能杀六什么变,什么变量都能删啊,什么变量都能删,只不过之前没这个要求,是不是我们现在有这个要求,提出来给大家讲一下啊,其实很简单的,现在我运行的时候你会发现这个heroes里面是有东西的,但是呢,如果想删除列表变量本身啊,直接Del heroes什么都不用加就不加索引,它表示将当前变量整个删除掉,所以这次打印的时候你会发现。
17:12
我再也打印不出来东西了啊,因为变量已经被你删掉了,来右键运行一遍,看见没有,是不是报错了,告诉你hero没heroes没定义明显我定义过,很简单,就是因为你这里删除了,所以它才会报错,这就是我们列表的定义和列表的基本操作,其实并不难,对不对?那这样一来的话,我们接着往下讲列表的另外一个特性,什么特性呢?叫做列表的分片啊,就是我们的曲片或者分片啊,列表的分片操作,这个大家应该还记得列表的分片操作。分片操作,因为我们字符串那块都有分片,是不是因为字符串有索引嘛,那列表也有索引啊,所以列表实际上也可以进行分片操作的,分片操作的格式和我们的字符串是完全一样的啊,所以我们来看一下分片操作该怎么来完成,首先呢,为大家新建一个文件,哎,这个是不是没注释啊啊多了一个东西啊好,那在里边我们新建一个文件啊,第三个文件。
18:10
卖下线扣六下线零三啊,然后OK创建文件,这里面给大家写一下我们列表的分片。好,列表的分片呢,并不复杂,因为列,因为我们已经有字符串做底子了嘛,是不是,所以分片操作,其实它的格式啊,就那么几种,第一种情况下就是我直接是列表变量中括号里边放一个冒号。冒号的冒号啊,前面课放开始索引,后面放结束索引啊叫结束索引。然后呢,由此而衍生出了另外几种,哪几种呢?就是我们下面要介绍的有开始没结束,有结束没开始,没有开始没有结束的方式,是不是?所以这几种结构大家其实在学字符串的时候啊,分片都学过啊,你看有开始没结束,有结束没开始,或者说直接开始结束我都没有啊,也可以啊,直接开始结束没有就一个冒号。
19:09
这就是我们的基本格式啊,这叫基本格式。那这几个数我们来实验一下好不好,那为了在这里边儿能够分片操作,我们在里边新声明一个列表变量行不行,我们写一个魏国的一些英雄啊。就是曹操他们阵营的。比如说我们写上张辽。然后我们写上这个许褚。然后呢,我们再写上啊,写上我们这个大将夏侯惇啊夏侯惇。夏侯。蹲。然后呢,逗号,我们还有什么夏侯,是不是夏侯渊写错了,夏侯渊是不是还有什么曹洪啊,这些东西,这些人啊,是不是曹洪,什么曹丕之类的啊,OK啊,有点少啊,再加一个吧,行不行,再来个皇上吧,再来个曹丕啊。
20:01
好。还有七步诗的曹植也给他行不行?曹植,这都是魏国势力嘛,曹植啊。好搞定,然后呢,我们家里面进行分片操作,第一种分片啊,那我们就来介绍一下,直接是第一种格式,也就是变量有开始有结束的格式,那变量中括号冒号啊,冒号前面是开始索引。开始索引,后边是结束索引,然后呢,访问的时候直接来呗,Print放上括号为,然后冒号啊不是不是中括号写上冒号,但是这样直接看会比较麻烦,所以咱把索引直接写上去行不行?一个索引一索引二索引三啊索引二啊索引三索引四。所以五所以六。反向索引,我们来记录一下啊。好,反向索引从后往前分别是负一索引。负二索引。负三索引。
21:01
负四索引。负五索引。负六和负七。好,负七。好搞定,然后呢,我们在那来访问,比如说我希望要什么呢?夏侯渊以及夏侯惇这两个数据我该怎么写呢?我应该写二冒号四也说从第二个索引开始获取到第四个之前来看一下是否正确呢,来运行一遍,大家发现确实夏侯惇和夏侯渊对不对,所以呢,需要注意一点啊,其实不需要注意,因为之前给大家说过了嘛,这种方式其实都是共同的,这个就表示从开始,所以。获取到结束索引之前啊,从开始索引获取到结束索引之前,是不包含结束索引位置的,不包含结束索引这个特征贯穿着整个Python的始终,就Python中如果有开始有结束的话,那么都是有包含开始不包含结束的,好不好,好了来接着看啊,那这个我们没有问题了,再看下一个啊,不不跑偏了,我们再看下一个啊,什么呢?有开始没结束啊,第二个也就是说变量。
22:14
变量叫做变量中括号我们写上开始索引,但是呢,冒号我不写结束索引,那么来一下print运行一遍,比如说我们在这里写上一个魏国,然后中国,二我们写上什么呢?三冒号它表示什么呢?从三一直坚持到最后。所以结果应该是夏侯渊到曹植这样四个值来看一下对不对,是不是夏侯渊到曹植这四个值对不对,所以这个我们也可以了解了,它的是什么呢?它表示从开始位置啊,从开始开始索引位置。开始,所以位置截取到我们的最后,截取到最后。然后呢,再来下一个特征啊,下一个下一个则是有结束没有开始啊,那么接着来。
23:06
啊,跑偏了,好,我们接下来啊,回车在里边第三种格式,第三种格式呢,要是又是变量。然后中国。没开始有结束啊,有结束是不是,所以后面写一个结束,所以就可以。好,那我们这次来试验一下print,没有开始有结束,那就是为中国号冒号,我写一个三。它表示什么意思呢?从开头截取到,所以三之前啊,一定要三之前不包含三的位置,所以这个时候呢,应该得到了张辽许褚和夏侯惇来看是否正确呢?运行一遍程序,张辽许褚夏侯惇是不是正确了,嗯,那这样来的话,我们这个是不是也就知道了,表示从开头啊,从开头截取写错了,截取不对啊,截取到什么呀。
24:00
结束索引之前,当然它依然不包含结束索引位置。啊,这个截取不对啊,截取好了,来我们接下来看还剩下最后一种了,最后一种就是只有冒号的啊,这个其实给大家说过,如果只有一个冒号的话,表示截取整个列表本身啊,来第四个字符串里是不是就是这么介绍的,我们这里边也是一样,变量中括号只写一个冒号,那么用这种方式来进行获取列表的话,我们获取的和列表变量本身的效果是一样的,就是整个列表就是其实就是从开头到结束嘛,是不是一个都不少,和第一个是一样的,是不是从开头和我们最上面这个是一样的,从开头到结束啊,所以这种格式也很好理解啊,它表示或叫做截取整个啊,截取整个写错了。截取啊整个列表内容。啊,这是我们的基本格式,但是作为分片这么一说的话,大家应该还记得我们分片除了来取一段之外,还可以选择什么呀,跳步就是间隔值来取,对不对?所以它还有一个什么呢?另外一个高级格式啊,高级格式当中涉及到变量的索引,以及变量的跳步值或者叫间隔值,它的是开始索引,开始索引,然后呢,结束索引。
25:21
啊,然后呢,后边有一个叫做什么呀,跳步值,或者叫做间不能叫间隔值,就得叫跳步值或者说索引增加值啊这种方式,那么当然啊,前面两个依然可以使用上面这四种格式来进行操作,我们来试一下这个跳步值该如何使用呢?返回我们的列表当中去啊在这里边来一下我们的。叫做带有跳步的分片啊,带有跳步的分片操作带有。再有,有。跳步的分片操作。好,那这怎么来完成呢?来,首先打印整个变量为,那么这个时候答案知道整个变量是不是把列表中的东西都获取出来了,都在这里边,但是我可以什么呢?诶,写上中括号,冒号,指定截取范围,比如说我们就从头到最后行不行,那你就写个零冒号,或者说干脆什么都不写,从到最后,那这样的话依然是所有内容。
26:18
但是呢,你看好了,这次我要这么取,我要什么呢?我要取了张辽,取夏侯惇,再取曹洪,再取曹植,就是隔一个一取,那这个时候你的索引会从零,然后是二,然后是四,然后六,也是索引一次变动几个,是不是一次变动两个呀?那么这个时候你只需要在这里边加一个冒号,把你的索引增加值写上去就可以了,写一个二,这个时候你会发现我获取的就是张辽、夏侯惇、曹洪和曹子,值是不是隔一个H,因为我们的索引值默认是一的默认索,索引增加值默认是,也就是说零索引完了,加一变成一,再加一变成二,以此类推。那么如果你不希望这样做而希望跳出的话,那你就可以在这里边设定我,所以每次获取时增加的值我设置为二,就表示先获取零完了之后,所以你加二变成了二取夏侯惇,取完夏侯惇再加变成四取曹红,再加二等于六取曹纸,当然你也可以什么呀,你也可以不从头开始,比如说我这一次我要从许褚开始取,取完许褚。
27:19
取夏侯渊,再取曹丕,那这个时候怎么办呢?哎,其实很简单,你只要把开始索引设计好就可以了,为中括号,我从一开始取。那一开始说是屈除啊,就不像是不写了,从商辽了,那然后呢,到哪呢,到最后,所以不用管了,冒号,我要间隔几个呢,你虚除取完了,希望取夏侯渊一变到三是不是还是增加二的,那在里边写个二就可以了,这次就是从许褚开始,每次索引增加二,你看许褚加二夏浩渊,夏侯渊加二是不是曹丕呀啊,这就是我们什么呀。带有跳步的分片操作,那你把这个学完了之后,基本上就没什么大的问题了,那关于我们的分片操作基本上就这些好了,那么本小节我们先讲到这里边,下小节当中我们继续为大家讲解列表相关的内容。
我来说两句