00:00
来看屏幕,有这么一句话,生成器表达式和列表推导式的语法基本上是一样的,只是把方括号换成小括号啊,那也就是说咱刚才写的那个东西,把方括号换成小括号,它就不再是列表推导式,它是生成器表达式,这个时候你产生的东西就不再是什么呢列表了,而是一个生成器,直接就是一个生成器来看这。看这啊,把这东西可以让它再建了吧,新建一个PYTHON05叫生成器表达式啊啊来在这搞一个生成表达式,G等于小括号来IE负I in睿来个十来告诉我这时候这个G打印这个G是什么东西,个地还行,没有踩坑的是吧?没有踩坑的这打印是个什么东西,地址是个地址是个这玩意儿,这什么玩意什么玩意儿生成器对象generator ex p,这是表达式的意思,Express表达式的意思,那也就是说你现在拿到这个G,它是一个生成器对象,这个生成器对象是通过生成器表达式来生成的啊来生成的,那OK,拿到这个东西之后,我想往出拿。
01:30
怎么拿这一点怎么拿点杠next记住吧,来这时候拿出是几第二坑是吧,有彩的来解零对吧,认100到九记住吧,零到9OK,那么现在我想把这里面的东西都拿出来,怎么办呢?怎么办呢?生成技术可以这么玩four啊,比方E吧,In g,然后打印这个E是什么玩意,什么玩意,0023456789对不对,那我还可以可不可以这么玩,看好了啊,来个list list小括号,小括号咱说list之前我讲过的,List里面是不是可以帮你行next的记得吧,所以这个时候结果什么呢?就是一个列表的那个效果,但是这个列表它是生成器帮你一个一个蹦出来的,一个一个蹦出来的,OK,那么这个就是生成器表达式,这也就是生成器表达式,它和列表指导式语法。
02:30
啊,一模一样,语法一模一样,写法也一模一样,区别就是一个是方括号,一个是小括号,第二个就是它运行的时候的这个区别,列表推导式一次性把所有东西全给你,而生成器表达式是要一个给一个,要一个给一个,明白吧,这跟生成器是一样的,好了,这个地方说完了,生殖机表达式也基本上就说完了,剩下的你看底下的这套东西啊,比方说这个程序很拿,把它拿过来。
03:00
啊,麻花藤对吧,我们每天至少要拿出来遛一遛,对吧?来麻麻花藤是吧?我第几次爱你是吧?然后里面爱four IE range10,那这时候是从零到九,然后呢,这里面替换成零到九,那最终打印的结果,每次循环拿到都是一个不同的结果,对吧?马化腾第几次爱你啊,第几次按你这个跟上面的没什么区别啊,没什么区别,来往下接着看啊,我来接着看生成器表达式也可以进行一个筛选,这个筛选就咱刚才写的,如果啊,I与三等于零,I于三等于零,求平方都一样,跟刚才那个式都是一样的,那么它的区别,最主要的区别就是生成器表达式跟列表式区别最大的就是列表最小式比较耗内存,比较耗内存,一次性加载啊,就相当于咱们要一次性要1万件衣服,10万件衣服你没地儿存对吧,不好存,而对于列表。
04:00
推导师而言,要的时候就拿出来,要的时就拿出来,所以它几乎不占用内存,几乎它不占用内存,所以这个生成器它的特点就是能够提高你的程序的一个效率,提高你的效率啊,然后下面得到的值不一样,得到的值不一样,列表推导式拿到的是一个列表,而生成器表达式拿到的是一个生成器,拿到的是一个生成器,这个生成器可以一个个的往出拿值啊,这是不一样的。这里面举个例子,就是同样是一篮子鸡蛋,列表推导式直接给你一篮子鸡蛋啊,直接就一篮子鸡蛋,你按哪哪放哪放去,生成器表达式拿一老母鸡啊,要的时候就给你下个蛋,要的时候就给你下个蛋啊,根据你的需求来去拿鸡蛋,然后生成器它有个特点叫惰性机制,惰性机制跟那个迭代器是一样的,你不找他要值,他就不给你值啊,就这么怎么讲呢,强硬啊强硬,然后接下来兄弟们。
05:01
坑来了,坑来了,来分析一下这个东西的效果,来,我把这个读掉啊,这个干掉,砍掉砍掉砍掉,来告诉我最终打印的结果是什么,拿出笔,拿出纸自己去算,最终告诉我一个结果啊。
我来说两句