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错误,返回值包含在StopIteration的value中
可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator
生成器都是Iterator对象,但list、dict、str虽然是Iterable,却不是Iterator
浙公网安备 33010602011771号