在函数中有一些循环的操作,一般来说次数是没有限制的,这就是在Python中经常提到的迭代。有些小伙伴们使用iter不知道有没有迭代次数的限制,iter函数使用迭代器只能迭代一次。今天小编从iter函数的说明、语法、参数、返回值等进行分享,并带来实例的介绍,帮助大家找出iter迭代次数的要求。
1.说明:
(1)函数功能返回一个迭代器对象。
(2)当第二个参数不提供时,第一个参数必须是一个支持可迭代协议(即实现了__iter__()方法)的集合(字典、集合、不可变集合),或者支持序列协议(即实现了__getitem__()方法,方法接收一个从0开始的整数参数)的序列(元组、列表、字符串),否则将报错。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | >>> a = iter({ 'A' :1, 'B' :2}) #字典集合
>>> a
<dict_keyiterator object at 0x03FB8A50>
>>> next(a)
'A'
>>> next(a)
'B'
>>> next(a)
Traceback (most recent call last):
File "<pyshell#36>" , line 1, in <module>
next(a)
StopIteration
>>> a = iter( 'abcd' ) #字符串序列
>>> a
<str_iterator object at 0x03FB4FB0>
>>> next(a)
'a'
>>> next(a)
'b'
>>> next(a)
'c'
>>> next(a)
'd'
>>> next(a)
Traceback (most recent call last):
File "<pyshell#29>" , line 1, in <module>
next(a)
StopIteration
|
2.语法
3.参数
4.返回值
迭代器对象。
5.实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | '' '
iter语法为: iter(object[, sentinel])
有两种方式使用,第一种很简单,如下
' ''
list = range(6)
It = iter(list)
'' '
第二种,如果传递了第二个参数,则参数 object 必须是一个可调用的对象(如,函数),此时,iter 创建了一个迭代器对象,每次调用这个迭代器对象的__next__()方法时,都会调用 object,直至迭代到元素sentinel。
' ''
from queue import Queue
q = Queue() # 创建队列对象
for i in range(5):
q.put(i) # 依次放入5个数字
q.put( 'END' ) # 放入结束标志
def test():
return q.get() # 取数据
for item in iter(test, 'END' ): # 持续执行test()函数,直到返回’END’
print(item, end= ' ' )
|
根据本篇对python中iter函数的学习,我们可以得出iter使用迭代器次数为一次,这点是需要很多新手小伙伴要注意的点。
(推荐操作系统:windows7系统、Python 3.9.1,DELL G3电脑。)