本文首发于伊洛的个人博客:https://yiluotalk.com,欢迎关注并查看更多内容!!!
1.迭代器
- 大多数容器对象都可以使用
for
语句,承接上文装饰器的例子,还是拿英雄的技能举例子 - 王者荣耀中英雄关羽的技能有
一骑当千
单刀赴会
青龙偃月
刀锋铁骑
用for
语句分别迭代出1-4
技能
(yiluo) ➜ Code python3
Python 3.7.5 (default, Nov 29 2019, 14:32:46)
[Clang 9.0.0 (clang-900.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> skills = ['一骑当千','单刀赴会','青龙偃月','刀锋铁骑']
>>> for skill in skills:
... print(skill)
...
一骑当千
单刀赴会
青龙偃月
刀锋铁骑
- 在幕后,
for
语句会调用容器对象中的iter()
。 该函数返回一个定义了__next__()
方法的迭代器对象,该方法将逐一访问容器中的元素 - 我们现在利用一下
iter()
函数 和next()
函数
>>> skills = ['一骑当千','单刀赴会','青龙偃月','刀锋铁骑']
>>> skill = iter(skills)
>>> print(skill)
<list_iterator object at 0x1037ea5d0>
>>> next(skill)
'一骑当千'
>>> next(skill)
'单刀赴会'
>>> next(skill)
'青龙偃月'
>>> next(skill)
'刀锋铁骑'
>>> next(skill)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
skill
就是迭代器next
迭代到没有值的时候就会报错
享受每一天,Just Enjoy !