PY学习第三天

tuple也可以用切片操作,只是操作的结果仍是tuple

 

Python没有针对字符串的截取函数,只需要切片一个操作就可以完成

字符串'xxx'也可以看成是一种list,每个元素就是一个字符。因此,字符串也可以用切片操作,操作结果仍是字符串

 

for

dict可以迭代,key,value,items

字符串也是可迭代对象

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

 

Python内置的enumerate函数可以把一个list变成索引-元素对

 

在一个列表生成式中,for前面的if ... else是表达式,而for后面的if是过滤条件,不能带else

 

在Python中,一边循环一边计算的机制,称为生成器:generator

 

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

 

要创建一个generator,有很多种方法。第一种方法很简单,只要把一个列表生成式的[]改成(),就创建了一个generator

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

 

for循环调用generator时,发现拿不到generator的return语句的返回值。如果想要拿到返回值,必须捕获StopIteration错误,返回值包含在StopIterationvalue

 

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

 

生成器都是Iterator对象,但listdictstr虽然是Iterable,却不是Iterator

 

posted @ 2021-02-18 10:27  yunqiao  阅读(28)  评论(0)    收藏  举报