QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6551|回复: 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者会有什么区别吗?如果一样,那生成器岂不是没用了?(所以·····)
    + |  t- L! B8 F/ t! L( K
    1 f. x& g; \7 D+ ^  H7 z+ Adef createGenerator() : : O5 [" R: j, z! _2 g) j, v
        mylist = range(10)
    1 m; D' M  Q5 O, N' ]7 Q2 ^2 }
    7 ?; u6 B% O2 ^5 S1 T4 N    for i in mylist : 7 H! M  [0 i7 e# V. M. y) }7 o
            yield i*i
    & Z, `1 Q" _6 A' w$ r5 O% C( d; E* B) Q7 T9 `  W5 Q, `* C# n
    mygenerator = createGenerator() # create a generator
    1 z, e7 H4 B! pprint mygenerator 8 R- ^6 g% a) ]! Q# W3 O' _5 ]- j9 C
    ' V4 Y& o5 P5 p
    def createIterator() :
    , q- A% `- Y, `+ G6 @6 @! }    mylist = range(10)
    ' O. ^) i: h  u' S4 R" [4 U
    4 J5 h# K/ v1 o4 i* x7 O1 A7 L    return iter([i * i for i in mylist]) # D. c% {+ i* J  l% ~
    ( F0 b. A5 x  h& \9 _. Z" T& I
    myiterator = createIterator() ! y7 o0 u6 G' K  i7 A& d, Y- R
    print myiterator
    & P: B; G: g/ M' c# M( ?' s1 Z4 d1 m  {& R- M- S( j5 d' ]3 c) c8 v9 u# y4 T7 w
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    14

    主题

    10

    听众

    43

    积分

    升级  40%

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

    [LV.3]偶尔看看II

    自我介绍

    ' ]1 I; v( z; R) ?, }  [/ v
    6 x5 x2 s. `/ F* Z
    - t# T1 t! k5 `+ L7 f) L2 X! L  |. ]8 i0 O) a" s% y4 {: i5 L
    Cat_He 2015-04-07 20:38:08
    ! ~) V' C+ h9 {3 _3 f: R0 x; V3 j0 ~, e- D
    这样理解?=>生成器是一种懒惰的迭代器 & r# {$ Z- P' D. O, @* x; s8 }
    1 b5 Y& Z: R) S7 t# Q% L
    事实上,在Python3.x中许多原来在Python2.x中返回迭代器的地方都换成了返回生成器,更加优雅,安全,好用
    ! h; ]: S& K5 J+ {% G; s3 Y" @  m* f" l) Y! }; Z* p4 A  c8 _: G
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-7-18 12:19 , Processed in 0.401923 second(s), 63 queries .

    回顶部