Python:迭代器与生成器

迭代器(iterator

迭代器一定是可以迭代的,可迭代的不一定是迭代器
可以通过isinstance()判断是否可迭代

isinstance([],Iterable)	#返回boolean

迭代器的两个基本方法iter(),next()
提示:next()是python2的方法,在python3中使用会报AttributeError

list = [1,2,3,4]
it = iter(list)
#方法一
for i in it:	#for循环遍历,在python中for循环会自动调用next
    print(i)
#方法二
 it.__next__()

生成器(Generator)

相当于一个特殊的迭代器,和普通函数不同的是,生成器是一个返回迭代器的函数,每一次遇到yield函数是会暂停保存当前的运行信息,返回yield的值,并在下一次执行next()方法的时候从当前位置继续运行
包含yield()函数的一定是生成器,包含yield的函数是生成器函数,调用生成器函数创建一个生成器,如下边的代码中的test

生成器函数:

def myYield():
    print("将生成a")
    yield "a"
    print("将生成b")
    yield "b"
    print("将生成c")
    yield "c"

test = myYield()

在这里插入图片描述
在这里插入图片描述

生成器表达式:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值