python小白学习笔记(廖老师)10.3

写博客的初衷就是希望自己能坚持吧,当作一个小打卡啦~ ps:大神绕路,很初级很白痴
同时记录一些易错和易忘的知识点,以后复习翻着看看。
另:廖雪峰老师的网站刚刚接触,感觉很干货的样子,在这里推荐一下下~
注:本博客参考廖雪峰老师的网站
https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000

day4:

一、切片

即取指定索引范围的操作

L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。即索引0,1,2,正好是3个元素。

如果第一个索引是0,还可以省略

二、迭代

当我们使用for循环时,只要作用于一个可迭代对象,for循环就可以正常运行,而我们不太关心该对象究竟是list还是其他数据类型。

三、列表生成式

举个例子,要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11))

四、生成器

如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器:generator。

所以,我们创建了一个generator后,基本上永远不会调用next(),而是通过for循环来迭代它,并且不需要关心StopIteration的错误。

定义generator的另一种方法。如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator

五、迭代器

1.我们已经知道,可以直接作用于for循环的数据类型有以下几种:

一类是集合数据类型,如list、tuple、dict、set、str等;

一类是generator,包括生成器和带yield的generator function。

这些可以直接作用于for循环的对象统称为可迭代对象:Iterable。

2.可以使用isinstance()判断一个对象是否是Iterable对象

3.可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator。

4.生成器都是Iterator对象,但list、dict、str虽然是Iterable,却不是Iterator。

5.Python的for循环本质上就是通过不断调用next()函数实现的

猜你喜欢

转载自blog.csdn.net/weixin_41206209/article/details/82935580