00:00
回忆一下上课内容啊,上节课呢,我们做了比较复杂的容器菜谱啊,是吧,文声图的提示词啊,这些包括一些量化,那它用的都是什么呢?都用的容器,那容器是什么意思?容器呢?就是装东西的东西,各种各样的菜,它都放在容器里面,放在瓶瓶罐罐里面,做完了之后还放盘子里边,等于是从一个容器进行处理,再到另一个容器,那容器里头有容器,这怎么理解呢?比如说这个盘子是菜的容器。这个托盘是盘子的容器,那桌子呢就是托盘的容器,厨房呢就是桌子的容器,大楼就是厨房的容器,对吧?那Python编程里面有什么样的容器呢?我们一般说序列类的有列表、元组、字符串,集合类的有集合跟冰封集合,字典类的有字典,那我们一个一个看,首先是序列类,序列序列有序的排列嘛,就是所谓的sequence。
01:01
Sequence这个词怎么来的呢?SL跟着to follow的意思。那这个sequential就是跟着的,有次序的,线性的就是sequential,那跟着第一个呢,是谁呢?是第二个,所以叫second,时间就是这么一秒,一秒过去一秒,紧跟着一秒,所以叫second subsequent sub往下sequent跟随,往下跟随就是随后啊,紧接下来的。Consequence consequence抗共同的跟随的,那么共同跟随的就是结果,后果,因为有后果,所以很重要,看一下集合,集合先一后二,是一二,先二后一呢也是一二,所以集合是没有次序的,对吧?没有次序的,那字典呢,字典先猫后狗,是先猫后狗,但如果字典先狗后猫,那就是先狗后猫,所以字典是有次序的。D在pop item的时候,它一定是后入先出,对吧,后入先出,包括这个pop item的时候,他这个也提到了这个。
02:18
字典是有次序这回事儿。Pairs就是key和value are returned inful last in for sal啊,就是这么一个词序。那这个字典和集合呀,它都是NQ推出来都是大括号,那么一对空大括号是什么意思来着,那我忘了,我就用type方法去看一下这个东西是什么,是字典,也就是说Di这个东西就是大括号,默认大括号set呢,不能用一个对空大括号来表示。换句话说,字典的重要性比集合要高一些。对吧,可以可以这么理解,字典是有序的,集合是无序的,字典呢是见之对,集合呢是纯的集合,像是纯元素,呃,字典呢,K是唯一的集合,元素是唯一的,唯一性,这个就必须,是否可以索引呢?字典是可以索引的,用K来索引集合是没法索引的。
03:17
那字典在最开始的时候其实就是建制队手的集合,那既然是集合,当时就是无序的,那为什么现在又会从无序变成有序呢?也经历了一个时间过程,35,呃,3.5的时候还是无序的哈希表啊,3.6底层结构为紧凑字点compact dit, 保留插入顺序,插入顺序就有顺序了,3.7以后呢,要在语言规范里面确保插入有序。那也就是说它是经过了这么一个过程是吧,这个拍的语言也是不断变化的,那我呀,现在想做这么一个字典,什么字典呢?价格字典,比如说菜鸟驿站,我要投到某一个区域,它有一个首重,有一个续重,那能不能把这个东西生成程序呢?我就上传图片,上传哪张图片我把这个。
04:06
这个这张图直接传上去,然后呢,我们。就给他要求根据这个Python代码输入目的地重量得到价格。那他就会给我们这么一个。东西,我们可以看到这个东西是一个字典,对吧,它的K是目目的地,它的value呢是首重和续重,那这个数据结构给我们了之后啊,我们就可以怎么样,我们就可以把它复制过来。新建一个a.py的东西,然后粘贴过去并且运行邮到哪儿呢?比如说我邮到这个四川重量是5,那么这个5就是快递费是44元,四川在这儿12,上来就12,续重是82,加上一个8×4,答案是44对吧?那这个字典呢,我们可以看到它的Y6是一个圆组,那我能不能让T是一个圆组呢?哎,有这么一个例子,大家来看一下什么例子呢?就是飞行的例子。
05:08
从北京飞到各个城市,飞到各个城市可不要紧,他还要怎么样,他还要。有时区的变化,也就是说它不但有飞行的时间,它还有一个时区的变化。根据这两项得到最终的。时间。这么一个代码好粘贴过来,运行起来出出发城市,比如说就是北京啊,从北京从北京北,从北京去哪儿呢?哎,从几点去。比如说是时间是14点。目标是哪儿呢?目标是东京,东京。那我们可以看到,从北京出发,这个14点来飞行时间3小时,到到东京的时间是什么时间?
06:01
这样我们就可以有这个效果了。它的K是一个元组是吧,K是一个元组,那如果说我想改一下,我把这个K改成什么,改成列表行不行啊。回忆回忆他,改成列表行不行?然后我去运行它。直接就报错了,Type arrow UN、哈希able type list就是它这个list是不能哈希的,不能哈希的东西不能作为key。所以这个就是问题所在,我把它转化一下行不行呢?哎,那我就把它转化,怎么转化我在这儿。做做一些小实验啊,比如说我啊这个一个列表冒号。这是不行的,对吧,啊,包括我们这个。这个。列表作为集合项也是不行的,但是我要怎么样呢?我要把这个列表转化成原组,是不是就成了?说这个东西是一个列表,当我把它转化成一个元组了之后,那不就可以。
07:07
作为。元祖来使用了吗?哎,那这不就变成他炮了吗?也就是说刚才这个东西我我直接来不行,那怎么办?转成ta呗,对吧,我直直接完成是不可以的,但是我转成ta是可以的,为什么呀,Ta是可以哈希的呗,那我可以哈希的就可以完成这个任务,而且是序列啊,但是它的缺陷是不可变了,是吧?至少我们在这里就解决这个问题了。所以这个数据呢,就像水一样,在不同的容器之间不断的流淌。啊,这就是我们接触到的各种容器,我们总结一下,每一种容器呢,都有它的可变性,还有例子,嗯,还有例子。那么我们,嗯,根据这些容器可以跑什么样的流程呢?我们下次再说OEZ加枪。
我来说两句