Python零基础学习笔记(二十三)—— 迭代器


from collections import Iterable, Iterator

'''
可迭代对象:可以直接作用于for循环的对象统称为可迭代对象
(Iterable) 可以用isinstance()去判断一个对象是否是Iterable对象

可以直接作用于for的数据类型一般分两种
1、集合类数据类型:list、 tuple、 dict、 set、 string
2、是generator,包括生成器和带yield的generator function

'''

print(isinstance([],Iterable))
print(isinstance((),Iterable))
print(isinstance({},Iterable))
print(isinstance("",Iterable))
print(isinstance((x for x in range(10)),Iterable))
print(isinstance(1,Iterable))

'''
迭代器:不但可以作用于for循环,还可以被next()函数不断的调用并返回下一个值
直到最后抛出一个StopIteration错误表示无法继续返回下一个值

可以被next()函数调用并不断返回下一个之的对象称为迭代器
(Iterator对象)

可以用isinstance()函数判断一个对象是否是可迭代对象
'''

print(isinstance([],Iterator))
print(isinstance((),Iterator))
print(isinstance({},Iterator))
print(isinstance("",Iterator))
print(isinstance((x for x in range(10)),Iterator))

l = (x for x in range(4))
print(l)
print(next(l))
print(next(l))
print(next(l))
print(next(l))

lq = (x for x in [1, 2, 3, 5])
print(next(lq))
print(next(lq))
print(next(lq))
print(next(lq))
#同理tuple、dict、set、string都可以

#转换成Iterator对象
a = iter([2, 4, 6])
print(next(a))
print(next(a))
print(next(a))
print(isinstance((a), Iterator))

endstr = "end"
str = ""
for line in iter(input, endstr):
    str += line + "\n"
print(str)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值