码迷,mamicode.com
首页 > 编程语言 > 详细

Python 迭代器&生成器

时间:2018-04-28 19:37:15      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:限制   none   机制   /usr   完整   UNC   lis   pre   code   

生成器

  • 通过列表生成式, 可以直接生成一个列表. 但是受到内存限制, 列表容量是有限的. 如果创建一个包含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 迭代器&生成器

标签:限制   none   机制   /usr   完整   UNC   lis   pre   code   

原文地址:https://www.cnblogs.com/cheese320/p/8968983.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!