QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2470|回复: 1
打印 上一主题 下一主题

关于Python的生成器和迭代器

[复制链接]
字体大小: 正常 放大

12

主题

9

听众

38

积分

升级  34.74%

  • TA的每日心情
    慵懒
    2015-5-5 09:35
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    自我介绍
    sdc
    跳转到指定楼层
    1#
    发表于 2015-4-10 14:10 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    Python的生成器语法,会返回一个生成器对象,而用iter()函数,也能返回一个带有next()方法的可迭代对象,这样的话··按照我下面的写法,2者会有什么区别吗?如果一样,那生成器岂不是没用了?(所以·····) 6 |1 @9 o& c: d( Z5 A1 m+ q
    0 H$ B# ]- \4 h: [3 {
    def createGenerator() :
    # ^4 F7 \) Z- m. y! L7 A    mylist = range(10)
    ' N3 ~2 R6 [0 V) O1 h; d1 E2 p6 |/ u: i$ C1 X+ Z3 V' Z
        for i in mylist :
    1 x3 |. T2 C3 e8 S        yield i*i : `7 Y5 E- c% ^& ^

    6 E1 d* y3 p5 q/ j2 D( K; `mygenerator = createGenerator() # create a generator
    0 z4 n+ T$ E& ]  C$ J4 @print mygenerator 2 x& B1 u( L# j

    0 w5 K5 V8 d, O6 ~3 |+ V+ s9 q+ k% kdef createIterator() : 1 N5 g% ?" c& y' I9 h
        mylist = range(10) 1 J1 K& s- u# w

    " q/ N( J$ T$ R& }) ^5 x$ G    return iter([i * i for i in mylist])
    3 n8 n" H3 B! J: [4 J6 l5 b# G* Z) y- H3 J) B9 f" @. h
    myiterator = createIterator() % {+ _. m% E2 p) T+ ~, H7 h4 h0 n
    print myiterator ( o  Q* o3 Z! L6 D/ v& n

    ' {, J% D" |0 g- l$ W
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    14

    主题

    10

    听众

    43

    积分

    升级  40%

  • TA的每日心情
    慵懒
    2015-5-5 09:46
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    自我介绍
    9 ?# d" k& A; G* h  T3 _
    4 N3 X! }& W) W5 R
    + y& M: C  l" h8 E8 F- a) ~

    ) J; w: f. y: b( H. B1 F8 W# O+ zCat_He 2015-04-07 20:38:08
    4 b* @) k! Q; X) _9 x) c2 K
    ' `) ^5 U% `+ |2 Z% f- v这样理解?=>生成器是一种懒惰的迭代器
    3 k) F: l6 C5 ~4 v5 `
    ; P& |$ ^) b; ?事实上,在Python3.x中许多原来在Python2.x中返回迭代器的地方都换成了返回生成器,更加优雅,安全,好用  F) I- S, [. T% f2 ?' W
    2 |: W9 p- z& w( o6 Z: X
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2024-4-25 10:35 , Processed in 0.467418 second(s), 59 queries .

    回顶部