补充在遍历字典中 每次便利的item是字典的键名
links = {'a':'1',
'b':'2',
'c':'3'}
for each in links: #each式是键
print('%s->%s'%(each, links[each]))
迭代器:
python有两个内置函数iter() 和 next();iter()是将可迭代容器(比如字符串、列表等)变成迭代器;next()是将迭代器 向后迭代一步 起始位置是0, 迭代到最后抛出stop异常
string = 'liujialin'
it = iter(string)
print(next(it), next(it), next(it), next(it))
通过whill 循环和 异常处理 捕获stopiteration异常
its = iter(string)
while Ture:
try:
print(next(its))
except StopIteration as e:
print(e.value)
break
自定义迭代器类-实现斐波那契数列:
raise升起stop异常, 切记一定要定义iter方法 并返回自身对象。
class My_iter:
def __init__(self, n=10)
self.a = 0
self.b = 1
self.n = n
def __iter__(self):
return self
def __next__(self):
self.a, self.b = self.b , self.a + self.b
if self.a > self.n:
raise StopIteration('超出异常')
return self.a
for 循环 会识别stop 异常 并且终止循环
iters = My_iter(10)
for i in iters:
print(i)