Python 迭代器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 迭代器相关的知识,希望对你有一定的参考价值。
iter()函数和next()函数
使用iter(序列)函数可以获得一个迭代器,使用next(迭代器)函数可以获得迭代器中的下一条数据,例如;
l = [1,2,3] s = ‘hello world‘ t = (1,2,3,‘hello‘) it1 = iter(l) it2 = iter(s) it3 = iter(t) print(next(it1)) # 1 print(next(it2)) # h print(next(it3)) # 1
StopIteration 异常
当迭代器中没有数据时,会抛出一个StopIteration 异常,利用该异常判断迭代结束,例如:
l = [1,2,3] it = iter(l) while True: try: x = next(it) print(x) except StopIteration as si: # print(‘end‘) break # 1 2 3
迭代字符串、列表、元组和字典
l = [1,2,3] s = ‘hello world‘ t = (1,2,3,‘hello‘) it1 = iter(l) it2 = iter(s) it3 = iter(t) print(next(it1)) # 1 print(next(it2)) # h print(next(it3)) # 1 # 字典 d = {‘pid‘:‘123‘,‘name‘:‘tom‘,‘age‘:‘20‘} it = iter(d) # keys for k in it: v = d[k] print(k,v ,end=‘ ‘)
使用for/while循环迭代
l = [1,2,3] it = iter(l) for x in it: print(x) # 1 2 3 it = iter(l) while True: try: x = next(it) print(x) except StopIteration as si: break # 1 2 3
以上是关于Python 迭代器的主要内容,如果未能解决你的问题,请参考以下文章
为啥我在这个 python 片段中得到 float 是不可迭代的? [复制]
python:可迭代对象,迭代器,生成器函数,生成器的解析举例代码说明