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)
      View Code

以上是关于Python 迭代器&生成器的主要内容,如果未能解决你的问题,请参考以下文章

python高级之生成器&迭代器

python 装饰器&生成器&迭代器

python开发函数进阶:可迭代的&迭代器&生成器

Python-迭代器&生成器&装饰器&软件目录结构规范-Day5

python开发函数进阶:可迭代的&迭代器&生成器

Python 迭代器&生成器