Python 迭代器&生成器
Posted cheese320
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 迭代器&生成器相关的知识,希望对你有一定的参考价值。
生成器
- 通过列表生成式, 可以直接生成一个列表. 但是受到内存限制, 列表容量是有限的. 如果创建一个包含100万个元素的列表, 却只需要访问其中几个, 空间就浪费了.
- 如果列表元素可以按照某种算法算出来, 在循环的过程中不断推算出后续的元素, 这样就不必创建完整的list,从而节省大量空间. 在Python中, 这种一边循环一边计算的机制, 称为生成器: generator.
创建一个generator, 有很多种方法
- 第一种方法: 把一个列表生成式的 [ ] 改成 (), 就创建了一个generator
-
1 >>> L = [x*x for x in range(10)] 2 >>> L 3 4 >>> g = (x*x for x in range(10)) 5 >>> g
-
1 #!/usr/bin/python 2 # -*- coding: utf-8 -*- 3 4 a = [] 5 for i in range(10): 6 a.append(i*2) 7 8 print(a) 9 10 11 print("========== 上述代码等效于下面这句 ========== ") 12 b = [i*2 for i in range(10)] 13 print(b) 14 15 16 print("============== 更进阶写法 ============== ") 17 c = [func(i) for i in range(10)] 18 print(c)
-
以上是关于Python 迭代器&生成器的主要内容,如果未能解决你的问题,请参考以下文章