00:00
好,接下来呢,我们来进入到我们下一个内容啊,我们叫做一个字典,嗯,字典呢,我们叫做直接叫英文名叫D啊当然是简写是吧,那个它那个呃完整的名称特别长啊,特别长,那我们来说一下字典是什么?那首先我们其实把字典放到我们这一章节里不太合适,因为我们这章叫序列,对吧?而字典它并不是一种序列,它是一种新的数据结构,叫做什么呢?哎,叫做一个映射,诶字典属于一种什么呀?诶,新的一个哎数据结构,诶称为什么呢?称为映射,诶映射我们叫一个mapping,哎,Mapping也就是说它也是一种数据结构,它的作用干嘛呢?它的作用跟列表差不多,哎字典的作用和我们这个列表呢?诶类似啊,和列表类似,都是用来干嘛?诶,都是用来存储我们这个对象的一个容器啊,都。
01:01
用来存储对象的一个东西,也就是说,哎,我们想想我们的序列是干嘛的?哎,序列,我们的列表,我可以往列表里边是不是存多个对象,多个数据啊,哎,多个数据同样在字典里,我也可以这样啊,我也可以存储多个数据啊,多个多个东西啊,多个东西,但是那如果你跟列表跟序列一模一样,在这里边是不是就没有存在的意义了,哎,没有存在意义了,那它有什么不同呢?那这里边我们来说一下,哎,我们的什么呢?哎,我们的列表,哎存储数据的什么呢?存储数据的性能很好啊,存储数据的性能啊,但是诶,他查询数据的什么呢?查询数据的性能很差啊,很差什么意思?我在列表里存储一些数据是吧?我可以存储十个数据,或者存储1万个数据啊,我可能存储1万个员工信息啊,存储1万个员工信息,那这些信息都是按照一定固定的顺序,是不是在我这个序列,在我这个列表中中保存的呀?好,那现在问你了,我想从这1万个员工里边,我要。
02:01
找到一个名字叫做叫做这个白骨精的员工信息。那序序列怎么办?两种方式,要么你知道白骨精的编号,哎,你明确知道白骨精的索引,这时候你可以快速把它找到,那如果你不知道呢?如果你不知道的话,那你就得干嘛,把你这个序列里边所有的元素都得遍利出来,一个一个全都遍利出来,利出来以后我去一个一个检查,诶第一个是不是白骨精不是再看第二个,第二个是不是再看第三个,第三个是不是再看第四个,我得一个一个检查,一个一个去找吧,所以如果是我们序列,你再去操作这种很多的数据,需要很快速查询的时候,它的性能是很差的啊,它的性能是很差的,所以我们这个序列就相当于什么呢?哎,如果拿这个书举例子的话,序列就像一本书,而且这个书干嘛呀,没目录啊,没目录这个书你可以随便翻,你可以翻到第一页,可以翻到第二页,可以翻到第十页,可以翻到第五页,你想翻到哪页是哪页,就可以翻到哪页,但是你却不知道每一页显示的内容是什么啊,你比如说我在看本书,看水浒。
03:06
50万水浒这个里边没有摸,没有摸我想干嘛呢?我想快速的找到这个潘金莲毒死武大郎,那那那一页那怎么办呀,那那我只能是不是一页一页的翻呀,哎,我只能去一页页翻,因为没有目录嘛,那我们这个字典它是干嘛的呢?字典和我们这个序列就不一样了,字典注意了我们列表,我们的序列是不是通过索引来操作我们的这个这个这个元素啊,哎,元素,那我们来说一下,在字典中每一个元素都有一个唯一的名字啊唯一的名字那通过什么呢?诶,通过这个唯的这个名字,我们可以快速的这个查找到我们什么呀,诶指定的一个元素啊,通过这个唯一的名字可以快速查找到指定元素,那这唯一的名字其实作用和我们这个列表那个索引差不多,只不过这个名字我们好记一些啊,好记一些,那这字典就相当于什么呢?字典名字已经说出来了,字典就像字典。
04:06
字典我们不会乱翻,你没事,你除非你说我要背英语单词,我咔咔翻字典,从第一页往后看没用完,正常人没有从第一页往后看字典,对吧?那字典都是怎么办?我们是不是字典,我们都需要快速的找到某一个字,我咔一看,我要找这个张字,咔一翻找到张字了,我要找这王字,咔一翻找到王字,我要找一个字,我咔一翻,是不是一定要快速的去找到某一个字,这字典才有意义啊,否则我们要一页一页翻的话,这字典是不是就很麻烦呀?诶所以注意字典的存储性能呢,没有这个什么呀,没有这个序列好,但是字典什么呀,诶在我们这个查询元素时,诶查询元素时我们那什呀,哎,我们这个字典的这个,诶效率是非常的快啊,是非常快的啊,非常快的好,那接下来我们来说一下这个字典的一些术语啊,字典一些术语,那我们来说一下,哎,字典中哎,在字典中哎也是可以保存多个对象啊,多个对象,然后呢,每个对。
05:06
将都会有一个什么呢?都会有一个这个唯一的名字啊唯一的名字一定注意,每个对象都会有一个唯一的名字,那这个对象的什么呢?哎这个唯一的名字哎我们称其为什么呢?哎我们称其为叫做一个剑啊就做一个键,英文叫做一个什么呢?叫做一做key啊这个K这个唯一的名字我们叫做key而什么呢?而这个对象,哎而这个对象也就说什么呀,我们说了字典中是不是可以保存多个对象啊,这个对象我们什么呢?哎我们哎称其为什么呢?称其为值,我们叫做一个value啊做做一个Y,所以什么呢?诶所以字典我们也什么呀,哎也称为叫做一个什么呀,哎叫做一个键值对的一个结构啊间值对结构,间值对结构我们叫一个什么呀,叫做一个k value啊,叫做间值结构,所以以后跟你说键值对,那这种结构它都属于什么呀?哎,字典这种结构啊,字典这。
06:06
结构它是一个K对应一个value,那这K有什么用啊,哎,Value就是我们这个对象,K有什么用啊?哎,通过K可以干嘛呢?哎,通过K。诶可以快速的这个查询我们这个诶value啊,通过key可以快速的查询我们这个value,那这就是字典字典的一个诶介绍,然后再说一下,哎每个字典中诶每个字典中诶都可以有多个,哎可以有什么呀,哎每个字典中可以有都可以有多个这种什么呀,哎都可以有多个这个简单字。剑值对,哎,而每一个这个剑值对,哎,我们称其为什么呢?哎,称其为一项。称其哎为一项啊,一项叫做一个item啊,Item一个建设,对啊,一个key对应一个Y,这一俩凑一对,我们叫做一个什么呀,一个项啊,就一个item,所以在我们字典里存储的数据,我们可以存什么呀?存项啊,存这个item啊,存这个item好,那这个是我们说一个字典啊,我们介绍了一下,那介绍完了咱们干嘛呀?哎,废话不多说,我们来写一下啊,我们来写一下,那在这呢,我们来创建一个文件code里边我们来一个11。
07:29
11我们来说一下我们这个字典啊,字典这里边我们来说字典,字典我们要怎么创建呢?我们先说啊,我们使用什么呢?使用我们这个大括号来干嘛呢?创建字典啊,使用大括来创建字典,直接来一个,我们来一个这个D,等于一个什么呢?等于一个大括号,那这里就创建好了一个字典,我们还是打印一下,打印一个D,然后再来一个type一个什么呀,哎,Tap一个D,一个这个括号又不对了,Typeb一个D啊这一保存我们这一执行来看,诶,这叫class是不是D啊,哎,Class我们叫做D,我们的一个字典啊,那现在这就是一个字典,但是注意这是一个什么,这是一个空字典,这里我们创建了一个空字典啊,空字典。
08:19
空字点啊,它什么叫空字点呀,里边一项都没有对吧?一项都没有,那现在我们是不是要要整的话,我们是不是得向字典里添加项呀,哎,所以我们这来像我们这个什么呀,哎,我们来创建一个什么呢?诶创建一个这个,诶包含有这个什么呀,哎,数据的一个字典,那字典怎么创建直接写了啊D等于注意了,它不像我们这个列表了,列表存的时候,你直接123445是不是按顺序写就行了,但是在字典里你不能这么写了,因为我们说了字典它是不是有一个这个建值对结构呀,所以这里边我们来说一下语法它是怎么写的啊,语法我们叫什么呢?一个大块里边我们先有一个KK,然后冒号对应一个VALUE6,然后这逗号你可以接着写K冒号,一个VALUE6,然后你可以继续写K冒号一个VALUE6啊,VALUE6其实就这样一个结构,你要注意了,其实就是把我们之前一个一个元素变成什么呀,加了一个K啊,等于给每一个元素起了一个什么呀,起了一个名字啊,几个名字,所以这个时候我可以怎么写呢?我可以这么写。
09:19
看哪直接写一个,我直接来一个,来一个这个name name冒号,我这来一个什么呢?孙悟空,孙悟空,那现在我就创建好了一个字典,字典里边现在就有一个像一个像它的key叫什么,Key叫做name,而直叫什么直叫做一个孙悟空,我们这一保存我们来看一下,诶name幕孙悟空是不是有了呀,哎就有了,当然我能不能添加多个呀,哎能不能添加多个呀,在这我们来再整一个,来一个什么呢?诶我来一个age,然后冒号来一个什么呀,18接着来写来一个这个粘的,然后冒号来一个什么呀,来一个难啊,来一个难,这一保存我们这一执行来看name age gender,现在我字典里有什么,有三项啊,有三项。
10:06
一二是不是三项啊,哎,三项name age gender是我们的key啊,Name age gender是我们的key,孙悟空18男是什么?是我们的value啊,是我们的value,这就是一个什么呀?这就是一个字典啊,这就一个字典,那接下来我们来说了,那这个叫做K,这个叫做什么呀?这个叫做value,那我们来说我可以用哪些value啊,哎,我的值可以是哪些类型啊,哎,可以是哪些类型啊,那注意了,我们来说一下我们字典的值。字典的值可以是什么呀?任意对象啊,可以是任意对象,什么对象类型,你可以是什么呀?哎,是我们这些不可变对象是吧?什么number字符串,哎,然后什么布尔值,No这些值都可以,然后函数我们往后学各种各样对象,总之就是啥都行,你也可以是一个字典,也可以是个列表,也可以是圆组,是什么都行,懂意思吧,所以注意这个值是什么都行,可以是任意类型的对象,那K呢,诶,Key呢,我们来说一下字典的K,它可以什么呢?字典的键吧,我们写键吧,统一都写中文啊,字典的这个键啊,我们叫做K,它可以什么呢?可以是任意的不可变对象啊注意字典的key只能是不可变对象,像什么呀?像我们这个in呀,像我们这个string呀,像我们这个布尔啊,像我们这个什么呀,包括这些什么none啊,对吧,我就不一个个写了,所有的book,没有包括我们的这个什么呀,诶。
11:38
多p tale啊这些等等等等,它都可以是我们这个键啊,都可以实键,但是一定注意,一定要是什么不可变对象啊,不可变象你注意了,我来个list行不行不行啊,因为list是可变对象,它不能作为见所有的键必须得是什么呀,不可变对象这1.1定要时刻注意啊,只能是不可变对象,好,那这里我们再来看啊,再来看什么呢?看这么一个,来我们这来说一下我的键,我能不能这么写啊,我这来一个name name来一个,来一个什么呢?来一个孙悟空,我这换了,也就说你现在来看啊,这什么意思,我现在这个内幕是不是有两个呀,有两个吧,两个name行不行,行不行,哎,那注意了以后一旦看到键,我们的什么呢?字典的键是不能重复的字典的。
12:38
键是不能重复的,哎,也就说我们一个字典当中只能有这么一个name啊,只能有这么一个name幕,如果出现重复的怎么办?哎,如果出现重复了,后边的会什么呢?会替换掉前边的啊,后边的会替换掉前面的,也就是说这个孙悟空会把他给干嘛呀?替换掉啊,替换掉我们来看是不是这样,我直接一执行走一个是不是那个就没了,哎就换成了他了啊,就换成了他了,所以注意字典当中的键是唯一的,是不能重复的,你你也能猜到,如果重复了我找name幕,那我找的是谁啊,是这个孙悟空还是这个孙悟空,你就不明白了,所以注意剑是不能重复的,如果出现重复了,就会后来的就会把前面给它替换掉啊,给它替换掉,这个是我们说的一个什么呀,诶字典哎纠正常建以后就记住了就OK了,当然这种创建格式看起来不太不太清楚,对吧,你如果说你你想让它清楚一点,也可以这么来,怎么来呢?哎,你可以给他每一个。
13:38
这样你干嘛呀,单独放到一行这是没问题的啊,像我们这种大括号,像我们这种中号,它都是可以跨行的,这样我们一执行效果是不是一样啊,哎,效果是一样的啊,你也可以分多方使用啊,多方编写啊,如为了清晰啊,为了让我们这个代码更加的清楚啊,更加清楚,好那这个我们字典这创建完了对吧?创建完了以后呢,接下来我们要说什么了,诶那接下来我们诶这块等会说一下啊,字典键是不能字典的键可以是任意的不可变项是吧?印的字符串,什么布尔值,包括float的这些都可以啊都可以,但是注意但是。
14:13
一般呃,我们都会什么呀,使用字符串啊,一般我们字典的键都是字符串,很少用别的类型啊,一般都是字符串,但是不排除特殊情况啊,不排除特殊情况,好,那接下来我们来说接这字典创建完了,那接下来的问题就是我们怎么来获取字典里边的值啊,哎,我们怎么来获取字典的值啊,我们需要什么呢?诶我们需要诶根据我们这个键诶来获取我们这个值,操作方式和我们列表一样,只不过列表我们用索引这用键,那现在假如你想获取name,直接D,我这来一个中号来什么的name这一保存,我们这一执行是不是取到孙悟空了,你想要age,直接中号来一个AGE1保存是不是就18呀,你想都要我们这这样吧,我来一个这个name,然后这逗号,然后D,然后这来一个什么呢?来一个这个age,然后这逗号D来一个什么呢?来一个这个粘的一保存我们这一直行孙悟空18男是不都。
15:14
获取到了,哎都获取到了,就是这样一个效果啊,所以它的区别就是我们这个要通过名字来获取,而我们的列表是要通过什么呀,通过索引来获取,那同学说了,老师,那为什么你就说这个综艺查询性能好啊,哎,因为什么呀,因为索引没有意义,012345,它没有任何意义,但是我们这个名字是不是有意义啊,诶那么我就知道是名字了,诶我知道是一个年龄了,粘的就是一个什么呀,就是一个性别啊,名字是有意义的,我好找,而那个索以是没有意义的,就像页码一样,对吧,而我们这个呢,就是一个,诶就是一个目录啊,它查询起来速度比较比较快啊,比较快,好这个是它,然后再看啊,我们还有一种什么情况呢?还有一种特殊情况,Print,我们来一个D中号,我来一个hello,我来根据hello这个键来获取值,但是很明显有没有hello啊,没有hello啊,没有hello,我这一执行走一个干嘛喽,是不是报错了,给我们报一个什么key ever啊,Key ever k ever什么意思啊?哎,如果使用了我们这个列表。
16:14
容什么呀?哎,列表中,哎不是列表了我们这个字典中不存在的键,哎,不存在的键,诶会什么呢?会保错啊k ever,你这个键写错了啊,你这个键写错了,所以这个时候看到这个错一定要注意啊,一定要注意好,那这里边我们对字典做了一个简单的介绍,以及我们如何去创建字典,接下来你们先来体会一下这个事儿啊,自己来创建一个字典,然后通过这个键来获取下一个元素,诶主要先跟我们这个列表来对比一下,然后往下我们再讲字典的一个具体的一个操作,我们先停一下。
我来说两句