QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6578|回复: 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/ r+ G1 G4 M$ z4 P2 a2 i) ?! K  E5 A5 v$ O7 h0 l
    def createGenerator() : 8 C0 n3 @; O! ~  f7 C( @
        mylist = range(10)
    8 R. W+ |; @0 _. E
    ) |2 j+ h, H% J  v9 Y& y    for i in mylist : & Q# b5 i# X/ c& I. w; x
            yield i*i / s  N$ j( ~+ Y5 {
    ' p  F/ H* ?  R: k
    mygenerator = createGenerator() # create a generator ( [& m5 V  d; A; j
    print mygenerator
    ! P$ C! \8 ?$ K# x! _5 V' |, B" |$ b+ p% O
    def createIterator() : 8 X( p/ [- h0 k& m; [1 H( D
        mylist = range(10) 2 a1 c7 a/ Q, |3 P4 n
    0 J, M; W5 o: d
        return iter([i * i for i in mylist])
    # D* R: h* i* g+ F( N/ T" P# U  H/ ?* t. d7 f) {
    myiterator = createIterator() ( U+ l1 K, ~8 I- P4 o* s1 |' |
    print myiterator / \1 |) U/ Z; S. Y

    ' N& h! Y, K* k& v' X( a
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    14

    主题

    10

    听众

    43

    积分

    升级  40%

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

    [LV.3]偶尔看看II

    自我介绍
    8 k- \4 Y0 k: c) q& I- k

    & U# d0 d" F1 w+ R- w
    / {/ A% _! C$ G2 ~: C
    + m6 Z" j* B3 @; f- G  d, r# zCat_He 2015-04-07 20:38:08 - \2 g6 W$ Q: X
    0 m7 |0 G% _1 X0 P/ y
    这样理解?=>生成器是一种懒惰的迭代器
    , y# ~, j" F- B- a  r8 C2 L
    8 L8 E8 y) y, r. d1 ]; Y& j1 {, T事实上,在Python3.x中许多原来在Python2.x中返回迭代器的地方都换成了返回生成器,更加优雅,安全,好用. K4 F" o) M) i: E# y2 O
    ( h: h( s1 V2 s& f9 H
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-9-1 16:37 , Processed in 0.421753 second(s), 59 queries .

    回顶部