迭代器 生成器
来源:互联网 发布:剑灵龙族男捏脸数据 编辑:程序博客网 时间:2024/05/20 16:14
迭代:
1 重复
2 下一次重复是基于上一次的结果
迭代器的优点
1:提供了一种不依赖于索引的取值方式
2:惰性计算。节省内存
迭代器的缺点:
1:取值不如按照索引取值方便
2:一次性的。只能往后走不能往前退
3:无法获取长度
可迭代的对象:
含有内置函数__iter__()方法
可迭代的对象:列表、元组、字典、集合等
str1="hello GGG" #isinstance()
print(isinstance(str1,Iterable))#查看str1是否可迭代对象
print(isinstance(str1,Iterator))#查看str1是否迭代器
#next()执行代码遇到yield就停止,并接收yield返回的值
#send() 第一:传值给yield 第二:next()
#print(next(g))--执行遇到yield停止,接收yield返回的值
#g.send("luo")--先把“luo”传给yield,在接收yield返回的 y
#yield 第一:接收值 第二:返回值(默认返回None)
每次next()返回其中一个值
1 2 3 4 5
a s d f g
1 重复
2 下一次重复是基于上一次的结果
迭代器的优点
1:提供了一种不依赖于索引的取值方式
2:惰性计算。节省内存
迭代器的缺点:
1:取值不如按照索引取值方便
2:一次性的。只能往后走不能往前退
3:无法获取长度
可迭代的对象:
含有内置函数__iter__()方法
可迭代的对象:列表、元组、字典、集合等
迭代器:
含有内置函数__iter__()方法 和 __next__()方法
l=["a","b",3,4]g=iter(l) #返回迭代器 少用g=l__iter__()和g.__next__()print(g) print(next(g))print(next(g))print(next(g))输出:<list_iterator object at 0x0000000001DBA6D8>ab3
str1="hello GGG" #isinstance()
print(isinstance(str1,Iterable))#查看str1是否可迭代对象
print(isinstance(str1,Iterator))#查看str1是否迭代器
生成器 Generator
本质就是一个迭代器,函数里有yield ,该函数就是生成器def fun(): y =1 while True: x = yield y print(x) y+=1g = fun() #fun就是生成器print(g) print(next(g)) print(g.send("luo"))输出:<generator object fun at 0x0000000001DE2D00> #print(g)1 # print(next(g)) luo # fun()函数中 print(x)2 # print(g.send("luo"))
#next()执行代码遇到yield就停止,并接收yield返回的值
#send() 第一:传值给yield 第二:next()
#print(next(g))--执行遇到yield停止,接收yield返回的值
#g.send("luo")--先把“luo”传给yield,在接收yield返回的 y
#yield 第一:接收值 第二:返回值(默认返回None)
python3.x
yield from [1,2,3,4] 或者"asdfg"每次next()返回其中一个值
1 2 3 4 5
a s d f g
阅读全文
0 0
- 迭代器 生成器
- 迭代器,生成器
- 迭代器 生成器
- 生成器、迭代器
- 迭代器、生成器
- 生成器&迭代器
- 生成器迭代器
- 生成器&迭代器
- 生成器,迭代器
- python 迭代器 生成器 生成器表达式
- 迭代器、生成器、迭代器
- python迭代器和生成器
- pyhton 迭代器和生成器
- 迭代器和生成器
- 迭代器和生成器
- 迭代器与生成器
- Python 迭代器和生成器
- Python 迭代器 生成器
- java过滤器——filter的使用和配置
- 单向链表的基本操作
- JavaScript-定时器的使用之无缝滚动
- MyBatis传入参数的问题
- Python Requests Libraries
- 迭代器 生成器
- java迭代器浅析
- Codeforces Round #420 (Div. 2) E. Okabe and El Psy Kongroo 矩阵快速幂+dp
- 字体图标使用方法——以Iconfont为例
- Lintcode翻转链表
- onclick="function()"和onclick="return function();"区别
- Android OpenGLES2.0(十八)——轻松搞定Blend颜色混合
- UVA 11149
- Excel导出简单例子