QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6489|回复: 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者会有什么区别吗?如果一样,那生成器岂不是没用了?(所以·····)
    & N' p/ I% i2 J$ e9 \- A
    9 ]) T9 z1 @1 Z$ U" S6 Ldef createGenerator() :
    ; Y4 @; E6 D# D* p" l7 h  H$ `    mylist = range(10)
    * x$ [, K4 Q9 Y5 I, _, C! x' e) H! W4 q
        for i in mylist :
    7 W3 E: m: \* j1 @9 n, H        yield i*i ! V" o4 x7 e: m8 |3 _
    # [) \7 k5 d, B0 C) C' n' _+ d
    mygenerator = createGenerator() # create a generator
    0 L) M$ ?$ h6 B+ |) S. [# ?print mygenerator
    # r$ N0 y1 Y: y7 o
    % Q3 ~3 m' q# d) r! e' D# Sdef createIterator() :
    . B$ V" Z- t. A( X) H, g    mylist = range(10)
    % k1 s1 C, A* {; x# J$ C( Y
    3 N. v9 }/ V( U    return iter([i * i for i in mylist]) $ Z( B, j9 x9 u  q
    8 V. \% b' e7 f% D" B% y' Z
    myiterator = createIterator() $ A5 C0 e8 q2 }8 H! H) x
    print myiterator ' y' V) ]3 v9 P4 f& g

    - K! B# H2 ~, _! ~' i
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    14

    主题

    10

    听众

    43

    积分

    升级  40%

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

    [LV.3]偶尔看看II

    自我介绍

    6 }2 u8 H, G, v8 @; w9 K, C3 a: i4 f9 x" P6 z, F
    3 ^2 G7 Q1 L$ \7 Q

    ; G; Y. ~" _3 PCat_He 2015-04-07 20:38:08
    + e$ c; x, W& V/ g- z1 E+ e" v/ L
    0 S" g. M6 Z! R这样理解?=>生成器是一种懒惰的迭代器
    $ J& A- R& W& p
    % K0 u4 N0 W8 |2 p7 L  P5 ~事实上,在Python3.x中许多原来在Python2.x中返回迭代器的地方都换成了返回生成器,更加优雅,安全,好用2 G' G: G6 p5 J/ Z. l4 m

      _% Y2 S: \) n9 \0 c
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-4-19 18:40 , Processed in 0.444861 second(s), 59 queries .

    回顶部