QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5407|回复: 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者会有什么区别吗?如果一样,那生成器岂不是没用了?(所以·····)
    , D: z# |0 B  d: h& N, j$ }! ]+ H9 C- x
    def createGenerator() :
    6 C: K2 s& N- N) k* H    mylist = range(10)
    6 i3 F% F- n) _. F: y3 U0 p( I6 j8 p- i. e6 U- o  M2 d4 z+ O
        for i in mylist :
    ; Y" B" c0 W0 [8 a* N8 m$ C        yield i*i & g' b0 @( G$ P

    ( m5 B* ~6 P* S% }7 q0 Umygenerator = createGenerator() # create a generator
    9 J. X- R$ d, H! R( i, n) Z* ^print mygenerator 7 K- V5 m2 x7 v

    $ r0 ?" [0 ?1 d$ C8 E7 u, w+ }: idef createIterator() : , V1 i6 l4 `& G! Q
        mylist = range(10) + Z5 u; H8 n1 T' \7 C
    # C$ ?! a1 J2 f% ]" |
        return iter([i * i for i in mylist]) - t; |& F) W# G  _0 @# }

    + C( A  }6 t/ N5 x5 c9 Q. q) T# R. Jmyiterator = createIterator()
      i, L$ H' `/ J. {print myiterator 2 U0 {/ t5 G8 a5 w6 ~4 T2 L

    ; ?1 \1 ?" l9 r  R4 E' i
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    14

    主题

    10

    听众

    43

    积分

    升级  40%

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

    [LV.3]偶尔看看II

    自我介绍
    " O* m5 x, y7 V/ `" d

    $ T) w3 e) V% t
    9 G: v9 G5 b4 p$ ^- v2 ]" j8 Q9 Z  o; d' d  n3 c* B' I
    Cat_He 2015-04-07 20:38:08 1 w4 O; G0 f6 i; m: ]2 y6 I6 m

    8 D" e4 N9 t; }4 [% p$ h0 v这样理解?=>生成器是一种懒惰的迭代器
    1 C2 ]8 \- [( m: X
    . u6 b) _, B* ]事实上,在Python3.x中许多原来在Python2.x中返回迭代器的地方都换成了返回生成器,更加优雅,安全,好用3 |. w$ M* v1 r7 S1 F
    / _5 `4 F7 c. o2 ^0 r7 `
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2025-9-3 20:40 , Processed in 1.081855 second(s), 59 queries .

    回顶部