| — |
hacks:infinite-list [2012/02/01 14:16] (当前版本) |
||
|---|---|---|---|
| 行 1: | 行 1: | ||
| + | ====== Python 无限元素列表 ====== | ||
| + | |||
| + | 今天同学问到Python怎么实现无限元素列表,使用Yield就可以实现无限元素列表。 | ||
| + | |||
| + | 下面2段代码通过Python Yield 生成器实现了简单的无限元素列表。 | ||
| + | |||
| + | ===== 递增无限列表 ===== | ||
| + | |||
| + | <code python> | ||
| + | def increment(): | ||
| + | i = 0 | ||
| + | while True: | ||
| + | yield i | ||
| + | i += 1 | ||
| + | |||
| + | for j in increment(): | ||
| + | print i | ||
| + | if (j > 10) : break | ||
| + | </code> | ||
| + | |||
| + | ===== 斐波那契无限列表 ===== | ||
| + | |||
| + | <code python> | ||
| + | def fibonacci(): | ||
| + | i = j = 1 | ||
| + | while True: | ||
| + | result, i, j = i, j, i + j | ||
| + | yield result | ||
| + | |||
| + | for k in fibonacci(): | ||
| + | print k | ||
| + | if (k > 100) : break | ||
| + | </code> | ||
| + | |||
| + | ===== 参考 ===== | ||
| + | * http://developer-in-test.blogspot.com/2009/10/infinite-lists-in-python.html | ||
| + | |||