||
迭代与生成
1. 迭代器有时也称为游标,可以由迭代对象转化而来,支持以next()方法依次取出可迭代对象中各元素的一种东西;
列表也是一种可迭代的对象,我们也可以直接使用迭代器来访问列表里面的元素,通过使用iter( )作用于列表从而转化为一个迭代器;
>>> a=["pyhton","php","R"]
>>> a2=iter(a)
>>> next(a2)
'pyhton'
>>> next(a2)
'php'
>>> next(a2)
'R'
>>> next(a2)
Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
next(a2)
StopIteration
首先使用iter()将迭代对象转换为迭代器,然后使用next()依次作用于迭代器,迭代器取完元素之后就空了,并且引发一个停止迭代的异常,所以迭代器是一种消耗品;
2. 迭代器常见使用
使用迭代器需要掌握下面几个函数或者方法:
iter() #将可迭代对象转化为迭代器;
next() #取出迭代器中的
_iter_() #用于返回迭代器本身
3. 可迭代的对象
常见的可迭代对象主要有:字符串、列表、元组、字典、字符串、文件;
我们可以通过collections下面的Iterable中的isinstance()来判断对应的对象是否为可迭代对象,判断格式如下:
isinstance(待判断的对象,Iterable)
判断结果为True则为可迭代对象,若不是可迭代对象,判断结果为False;
4. 生成器概述与工作流程
生成器是迭代器的一种,使用next()方法对迭代器依然有效。
构建生成器的方法常见的有两种:
1) 通过yield字段返回实现;
2) 通过生成器表达式实现;
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-27 07:15
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社