说明:next()、iter()这两个函数一般配套使用。下面先介绍用法,后说明用途。
用法:
- iter( object ):生成可迭代对象的迭代器;object必须是可迭代对象,比如list、tuple、dict等;
- next( iter, end_num ):每执行依次,按顺序每次从迭代器中提取一个元素。如果没有第2个参数时,当从迭代器中取完所有元素后会报StopIteration错误,提示已取完;若有第2个参数,超出运行部分会一直打印end_num这个东西而不报任何错误。
使用案例1:
b = [1,3,4,5]
b = iter(b) # 获得可迭代对象的迭代器
for x in range(8):
print( next(x) ) # 每执行一次next()函数,就依次抽一个元素出来
# 结果:
1
3
4
5
---------------------------------------------------------------------------
StopIteration Traceback (most recent call last)
<ipython-input-30-a8068fff7e9c> in <module>
2 b = iter(b)
3 for x in range(8):
StopIteration:
使用案例2:
b = [1,3,4,5]
b = iter(b) # 获得可迭代对象的迭代器
for x in range(8):
print( next(x, -2) ) # 超出部分,都取-2
# 结果:
1
3
4
5
-2
-2
-2
-2
用途:其实next( iter(object) )就是从可迭代对象object中依次取元素,和直接用索引来取元素没有本质的区别。但是这种取法的好处就是next()会自动帮你记录已经取到第几个了!无论何地使用这条语句,它都会自动继续帮你往下取值!—— 即:不用多次记该取第几个索引值了。
网友评论