Python生成器和迭代器-创新互联

Python生成器


#生成器:在python中如何形成生成器 借助range函数生成

创新互联-专业网站定制、快速模板网站建设、高性价比铁力网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式铁力网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖铁力地区。费用合理售后完善,十多年实体公司更值得信赖。
a=(x for x in range(10));
print(a)#generator生成器

#借助next函数获取生成器中生成的序列元素

print(next(a))#0
print(next(a))#0
print(next(a))#0
print(next(a))#0
print(next(a))#0
print(next(a))#0
print(next(a))#0
print(next(a))#0
print(next(a))#0
print(next(a))#0

#在函数中定义生成器函数 如果一个函数中存在yield 那么此函数就一定是一个生成器函数

def func():
    print('第一阶段');
    yield 1;
    print('第二阶段')
    yield 2;
generator=func();

#next方法的作用是获取生成器中的下一个元素

print(next(generator))
print(next(generator))

#根据yield生成器函数 生成一个斐波那契数列 0 1 1 2 3 5 8 13 21

def feibo(number):
    #任何一个斐波那契数列的前三个元素都是 0 1 1
        n=0;before=1;after=1 #一次性给三个变量赋值  n变量的作用是生成一个循环
       while n

#生成器也是一个可迭代类型 iter()

gen=feibo(8)
for item in gen:
    print(item);

Python迭代器


#generator:生成器 都是迭代器 在每一个生成器中都存在iter函数
#next() iter() 迭代器

a=[1,2,3,4,5];
iterator=iter(a);

#迭代器中的元素 下一个(next)

print(next(iterator))#next意思指代打印迭代器中的下一个元素 移动指针

#结果

1

#迭代器又可以通过for循环进行对应的遍历
#for循环只能遍历可迭代类型 list 元组 集合...迭代器的一种

for item in iterator:#本身也会移动指针 但通过调用next方法已经将指针移动到了第二个元素的位置
    print(item)

#结果

2
3
4
5

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前文章:Python生成器和迭代器-创新互联
文章出自:http://scjbc.cn/article/coesdo.html