发布时间:2022-05-15 文章分类:Python 知识 投稿人:王小丽 字号: 默认 | | 超大 打印

在函数中有一些循环的操作,一般来说次数是没有限制的,这就是在Python中经常提到的迭代。有些小伙伴们使用iter不知道有没有迭代次数的限制,iter函数使用迭代器只能迭代一次。

今天小编从iter函数的说明、语法、参数、返回值等进行分享,并带来实例的介绍,帮助大家找出iter迭代次数的要求。

1.说明:

(1)函数功能返回一个迭代器对象。

(2)当第二个参数不提供时,第一个参数必须是一个支持可迭代协议(即实现了__iter__()方法)的集合(字典、集合、不可变集合),或者支持序列协议(即实现了__getitem__()方法,方法接收一个从0开始的整数参数)的序列(元组、列表、字符串),否则将报错。

>>>a=iter({'A':1,'B':2})#字典集合
>>>a
<dict_keyiteratorobjectat0x03FB8A50>
>>>next(a)
'A'
>>>next(a)
'B'
>>>next(a)
Traceback(mostrecentcalllast):
File"<pyshell#36>",line1,in<module>
next(a)
StopIteration

>>>a=iter('abcd')#字符串序列
>>>a
<str_iteratorobjectat0x03FB4FB0>
>>>next(a)
'a'
>>>next(a)
'b'
>>>next(a)
'c'
>>>next(a)
'd'
>>>next(a)
Traceback(mostrecentcalllast):
File"<pyshell#29>",line1,in<module>
next(a)
StopIteration

2.语法

iter(object[,sentinel])

3.参数

4.返回值

迭代器对象。

5.实例

'''
iter语法为:iter(object[,sentinel])
有两种方式使用,第一种很简单,如下
'''
list=range(6)
It=iter(list)

'''
第二种,如果传递了第二个参数,则参数object必须是一个可调用的对象(如,函数),此时,iter创建了一个迭代器对象,每次调用这个迭代器对象的__next__()方法时,都会调用object,直至迭代到元素sentinel。
'''
fromqueueimportQueue

q=Queue()#创建队列对象
foriinrange(5):
q.put(i)#依次放入5个数字
q.put('END')#放入结束标志

deftest():
returnq.get()#取数据

foriteminiter(test,'END'):#持续执行test()函数,直到返回’END’
print(item,end='')

根据本篇对python中iter函数的学习,我们可以得出iter使用迭代器次数为一次,这点是需要很多新手小伙伴要注意的点。