QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6513|回复: 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者会有什么区别吗?如果一样,那生成器岂不是没用了?(所以·····)
    # Y, X) `  _3 v% D1 ^; J3 f
    : M2 N/ Q1 I$ n- x2 d% p; h' Y8 ~- {def createGenerator() : & l4 I6 ^+ E. c* ]
        mylist = range(10)
    3 w( Z0 U8 q. t7 x
    + ?1 F7 @# c) J0 ]+ R    for i in mylist :
    & o% ~: r  ?% x" e        yield i*i / u3 _1 U4 m  G* B& L
    / _$ L) k6 ~' a& l
    mygenerator = createGenerator() # create a generator
      Q6 L* U& V/ v+ S6 P5 H2 w6 X/ A' Gprint mygenerator
    ! J" c" {6 p$ k, T' B
    : ?- G7 o( c( X. R8 Zdef createIterator() : ' F% J7 ^2 t+ Q5 h5 c2 S2 K1 ~
        mylist = range(10) / ~3 p% l' C7 X/ g4 M

    6 X' g$ k; `, i! c/ I& Y: c    return iter([i * i for i in mylist])
    ; M4 [& X( X% ?! u" }( n: K  ?/ ?
    $ Z. `" \+ W5 B: Pmyiterator = createIterator() " d" G* o" e) f: ?
    print myiterator
    ! i; C1 F2 h# D  Z" g  Q. u; x+ G' U! L+ h
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    14

    主题

    10

    听众

    43

    积分

    升级  40%

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

    [LV.3]偶尔看看II

    自我介绍

    % q+ b' G& j* q6 p5 `/ ]4 D
    3 `1 a: P& [4 m# }" j) b1 g. j; Q8 Q
    * M3 J8 _; v% {. |: M
    Cat_He 2015-04-07 20:38:08
    + C/ |8 ~+ g+ L  w! F4 D" u9 v; D2 a9 N! h# u' v& [" @4 M' A8 C: _
    这样理解?=>生成器是一种懒惰的迭代器
    % @5 t4 K/ X. u- N  s
    / Y$ w2 |& Q$ |, L* P" b事实上,在Python3.x中许多原来在Python2.x中返回迭代器的地方都换成了返回生成器,更加优雅,安全,好用) L* L6 y1 r' j1 W7 L1 y

    3 U2 r* Q. ~  A- Z  u7 x$ d, b0 \
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-5-25 14:44 , Processed in 0.798788 second(s), 59 queries .

    回顶部