我现在已经有很多对象可以使用for
循环, 而且相对于其他语言, pytyonfor
循环的使用方式非常优雅, 简洁和便利.
for
循环的背后就是迭代器.
迭代器使用遍及 python ,并且使用方式统一.
for
使用迭代器的步骤简述如下:
调用内置函数
iter(container)
, 把容器作为参数传递进去, 返回一个对象, 这个对象就是一个迭代器对象. 容器对象就是指的咱们前面说str, list
等.迭代器对象中有一个方法
__next()__
, 这个方法每调用一次, 就可以访问到容器中的一个元素. 我们自己要调用的话, 不用直接调用这样双两下划线方法, 调用内置函数next(it)
放就可以了, 迭代器作为参数.当容器中最后一个元素被迭代后, 再调用
__next()__
方法, 则会抛出一个StopIteration
异常,for
循环捕捉到这个异常后就可以终止循环了.
用迭代器访问字符串元素
s = "acdefgh"
# 获取字符串 s 的迭代器, 其实等价于 it = s.__iter__()
it = iter(s)
print(next(it))# 迭代第一个元素
print(next(it))
print(next(it))
print(next(it))
print(next(it))
用迭代器访问list
元素
s = [10, 30, 40, 20, 2]
it = iter(s)
print(next(it))
print(next(it))
print(next(it))