00:00
上次试着设置字典下side default, 有我们就不设置,没有我们才设置,试着获取,没有它也不报错是吧?那字典能便利吗?我们还是从首先呢,我们看看这个有这么一个字典。One=1 two=2 three=3,还有3个KY6的P。那这三条我们想把它变利一遍怎么办?t.tab, 那tab之后呢,我们发现它有若干个方法,其中有一个东西是什么呢?是Kiss。地点kiss调用这个方法会有什么结果呢?One two three.那这个地点kiss怎么理解呢?我们去喊一下救命,什么是地点kiss?这个它返回的是一个set like object, 像set一样,像集合一样的对象,提供一个在D的key上的视图。那确实我们可以看到它是one two three, 那我能不能把这个东西直接转成集合,把这个地点kiss直接转成集合是没问题的,直接转成列表也没问题,那它其实就是个容器,既然是个容器,我就可以对于d.kiss里边的每一个K取在ind.kiss里面的每一个K去出这个K。
01:15
输出这个key之后得到one two three, 这样3个K我就得到了。得到之后我们想keys出来了,那我能这个找到它的values吗?地点Values还真有123,看起来也很相像,那我干脆也把成什么呀,也把它转成呃list,它是不是也是个容器,还真是个容器。那我也可以便利它了,For value in地点,Values.在values里的每个值输出一个什么?输出一个value,输出VALUE6之后也得到123,得到123,那么这个123就是它的values。那么。它的VALUE6S可以是相同的吗?我们看这么一个例子,说D是一个字典,它有一个字典项叫OEZ,它等于什么?等于123,它一个字点项叫O2Z,它也等于什么呀,等于123,那么这个D是什么?它就是这个字点它的K不相同,它它的Y6相同,那K可以相同吗?我们还是这个字点OEZ是123。
02:19
OEZ还是123,这就不行了是吧,这个keyword参数不能重复,也就是说你这个是。O easy z, 这个也是OEZ,那就不行了,那我如果直接赋值,比如说OEZ。前面这个o easy z是什么?是123,后边这个12O o easy z是什么呢?是456,这行不行,我们可以看到是可以的,但是K还是唯一的,后边儿这个VALUE6会把前面的value覆盖。K不可以是相同的。必须是唯一的,所以K很重要,至少比Y6重要,Y6你可以重复,但是K必须唯一。Key嘛,关键嘛,是吧,关键的东西看这个key value6P主要看谁,主要看的是key不是VALUE6,那key是唯一的values为什么就就能重复values能重复它的前提是什么呀?它前提是K不重复你你你说你这个东西改成123123K也重复Y了,也重复它没意义。
03:20
对不对?K不重复,Y6才能重复,而且甚至有专门的方法批量设置。不同K相同的value。什么方法呢?有一个names names是什么呢?是一个容器,它里面有两个人,一个是OE。还有一个是O2Z,那么他们有电话,他们的电话都是一二三,也就是说你找O2Z,那你得先找O1Z,现在找O1Z o2Z还小,这等于什么from kiss.From kiss from谁,Names, 然后telephone,也就是说不管你找o easy z or z, 它都是使用同一个电话,那我们看看地址什么样呢?O1在的电话123 o2Z的电话也是123,这样就通过一堆的K。
04:03
让它的value相同,所以key必须得是唯一的,但value也是不同的。好,那么我们继续看这个的说法是什么,From keys这个dictionary的from kiss的方法,Create a new dictionary.创建一个新字典,从这个可变利的这个。里面获得一堆key,再把他们的值都设置成相应的这个value,如果你不设这个VALUE6,那它都对应的这么一个情况。那么我用value可以反查key嘛,反查K,那这就有点复杂是吧,D是这么一个字典。For key in地点keys,那我要反查key是吧?那我手里的是什么呀?是Value,那如果说我捋到这个K,它的value是什么,是123,那就怎么样,那就输出这个K,那这个的问题是type l, 就是说你缩进不一样,所以这个是实际写程序的时候可能会出现的各种错误。
05:08
那这块摁12TAB是吧?If DK=123的话,如果这个K得到Y6是23,摁两下tap输出这个K,好,那它就可以输出OE z or z, 这是通过这个Y6去把这个P给它捋出来。因为你一个Y6可能对应好几个key,所以你得这么全捋一遍才能捋出来,但是你要是通过K找Y6,那可太容易了,说或2Z的key是什么呀,他就一下就出来,字典查字典干这用的,干什么用的,通过key映射到他的Y6干这个用的,那我想100啊,把这key value6全都把改达达遍利出来行不行?我试试KD.keys,我们输出这个key,再输出这个key所对应的value,再输出这个分割符,然后得到O1Z对应123 o2Z也是123,除了这种拿key便利的方式,还有没有其他的方式?第一找呗,他有什么方方法就在这儿,Ittos its, 这个ittos什么意思呀,不知道。
06:16
一看它是什么,它得到一个dictionary items这样一个东西,那我就把它怎么样喊救命呗,什么意思是一个对象提供一个地上的视图,那我既然你是对象,我就可以怎么样把你给改成一个容器。它是这个容器,但是你要不是对应这个方法名,而是要调用,调用之后我们得到这样一个东西,它是一个列表,列表里面的是元组,这元组可不是一般的元组,是K和Y6的二元组,那既然你是二元组,我就可以解包了,KY6,你俩一个K一个Y6是什么呀?地点it对不对,那我就print一个key print一个value,他们中间的separate用的是冒号。
07:10
这样也可以一把就把key和Y6都遍利出来了,它的好处就直接得到这个实际数据,就不用每次再通过key去查Y6了,这就是it的方法。那说了这么半天,我们能不能做点实际的例子呀?我们看看system系统包里面有这样一个东西叫什么system点儿modules模块,点儿modules这个东西就是一个什么,就是一个字典。大括号括起来了,P和Y6的P对不对?那我想要把它列的清楚一点,那就是its,但是这its要怎么样,要便利怎么便利,For key和value在这个里边儿,那就怎么样,首先它有一个模块名。有一个模块描述,这个拈块描述其实就是它的具体的模块名儿,以及它所在的位置,有些是在硬盘上的一个具体位置,有些已经内建在这个,比如说劈口这个东西就已经在。
08:13
模块内部,那这次呢,我们其实就学的是便利,所说的便利总共有三种,第一种是对key的便利,Key是。它的键value是它的值,Item是它的键值,对儿,那这次呢,我们就遍历了字典,字典我们可以把它拆成它的。K的列表也可以把它拆成它的value的列表,那能反过来吗?我有一个K的列表,有一个value的列表,再把它缝合成一个字典,有可能吗?我们下次再说。
我来说两句