2013年9月26日

Python生成器 yield

摘要: 迭代器与list相比较,就for in句型循环拿数据而言: 用list写很简洁,但如果list数据过大,会很消耗资源。 用iteration 迭代器写,则不会消耗那么多资源。他会随用随取,用一个拿一个。但是你要会先写一个迭代器类,然后才能for in,这样就很不简洁。有没有既像list那样简洁,又像迭代器那样省资源的方法呢。yield 生成器来了:#非波那且数列:def func(max): #参数表示要返回前max个非波那且数 #n是计数用,a b分别为第一和第二个肥波那切数 n, a, b = 0, 0, 1 while n < max: yield b... 阅读全文

posted @ 2013-09-26 23:49 李皮筋 阅读(394) 评论(0) 推荐(0) 编辑

Python迭代器

摘要: python迭代器具备两个基本条件:1 实现__iter__方法,返回自身。2 实现next方法,返回下一个元素,并且当元素没有了要抛出StopIteration异常。另外有说法是:一个实现了__iter__的对象是可迭代的,一个实现了next方法的对象是迭代器。class myiter: #接收一个迭代数值 def __init__(self, i): self.i = i #实现__iter__,返回迭代对象自身 def __iter__(self): return self #实现next def next(self): ... 阅读全文

posted @ 2013-09-26 16:53 李皮筋 阅读(301) 评论(0) 推荐(0) 编辑

回顾一下 递归和迭代

摘要: 递归是自己调用自己迭代是根据已知值一个个推算出未知值#递归def f(i): if i <= 10: return i + f(i+1) else: return 0#迭代s = 0def f(): for i in range(3): s += iprint s 阅读全文

posted @ 2013-09-26 16:00 李皮筋 阅读(170) 评论(0) 推荐(0) 编辑

导航