QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6484|回复: 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者会有什么区别吗?如果一样,那生成器岂不是没用了?(所以·····) 1 a) [% _7 o5 S; _3 i) g
    0 T& T$ k% m, n: `, Z7 M+ x5 f
    def createGenerator() : ( ?& \! N" J- d2 B
        mylist = range(10) # F, M* J, Y4 x0 i; W

    . z9 [$ K& C+ [* p5 L; ]    for i in mylist :
    , x- l4 I3 `. V% K        yield i*i
    " Y& S% {. l. ?$ }" H
    0 A0 |8 i5 O) c0 `7 n! x$ }5 Imygenerator = createGenerator() # create a generator 6 f6 h' C# S1 y- P. D) X
    print mygenerator % X& ~+ m1 x# m) x
    ' p& X7 \) o# `/ J! k5 o
    def createIterator() :
    / v# j" X8 ]+ J( ^" f% C    mylist = range(10) 6 F  I+ q/ w7 M8 p, E
    . W" c1 M3 e7 Y- P4 d. k' R
        return iter([i * i for i in mylist])
    : X- r2 P+ W6 @1 y0 g3 E* }9 e0 a; ^2 D; J! C" v
    myiterator = createIterator() + m. \1 Y3 X  g- `# q
    print myiterator 6 t$ X1 J" ~# W, R7 V( q
    # v& ]' m- i2 K! K5 F
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    14

    主题

    10

    听众

    43

    积分

    升级  40%

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

    [LV.3]偶尔看看II

    自我介绍

    7 o2 C+ `1 S- P+ v; ]9 R. O% X1 w: E8 b" d3 F8 o" A

    2 E/ r' L2 c7 D9 P$ k" ?, N5 D* V$ h$ f2 o" C8 d
    Cat_He 2015-04-07 20:38:08
    3 b) a7 u/ B6 l# X. x5 U) o8 r! a" w$ L9 F3 h& h
    这样理解?=>生成器是一种懒惰的迭代器
    5 d/ r6 }3 R. L; ]8 l- k
    1 R' x* b2 z/ v; M$ z事实上,在Python3.x中许多原来在Python2.x中返回迭代器的地方都换成了返回生成器,更加优雅,安全,好用( ], X8 G* M) {; [% t. U
    ) X' Z) g- ^# d. A, J2 N
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-4-15 07:36 , Processed in 0.404551 second(s), 63 queries .

    回顶部