QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6550|回复: 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者会有什么区别吗?如果一样,那生成器岂不是没用了?(所以·····) + p/ @% _5 p0 I/ p$ v0 c( G9 F1 ]' t

    $ n: Q. J! P4 zdef createGenerator() : ( a/ L& E4 E2 v* n/ i3 D& ]; j
        mylist = range(10)
    * ?- _1 O7 K7 s0 F$ c  t6 e8 C/ t1 m
    $ a) x! z( j' b. [    for i in mylist : 4 ~) _* S4 c8 {' V0 z0 ?* S/ U' U
            yield i*i
    ' [+ P3 }7 n) J* W( I( z+ P! p/ g1 _! \( g9 E
    mygenerator = createGenerator() # create a generator & a: x% L# {9 U  u2 ~
    print mygenerator + f6 R7 [! e4 o- l3 G. Y" T$ k& q, G
    2 m& d8 j9 }4 u% u! A4 k; I8 ]
    def createIterator() :
    - C  c2 k/ O7 D8 h4 U! `0 f; o) k6 U! y    mylist = range(10)
    / f) p9 X' z; w3 X' h  l
    1 j  e9 r! p6 F# q    return iter([i * i for i in mylist]) / A8 X7 G3 {* D! \' ~) G
    , Q7 G: v/ ?( c( ^5 i' b4 }
    myiterator = createIterator() . U$ E+ S- [2 v/ O1 Y8 O
    print myiterator 3 d, s* S% g1 |  N8 A; G1 |% s" c* o
    9 g7 Q4 {5 h# y7 p$ Q
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    14

    主题

    10

    听众

    43

    积分

    升级  40%

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

    [LV.3]偶尔看看II

    自我介绍

    2 \7 f* A/ d+ x; g. Z* d# Y+ L1 ^, x. T' _& x* Y

    ! |1 a2 H: H/ @$ T6 ?3 g6 y) Z
    0 F+ ?) c, q2 |+ [# ZCat_He 2015-04-07 20:38:08
    . B; n  Q$ e; J0 ]2 B1 n/ Z$ i+ z! |
    这样理解?=>生成器是一种懒惰的迭代器 6 R' q" h6 v( {$ w* g; M6 a/ J

    ( t+ l: P: D* u事实上,在Python3.x中许多原来在Python2.x中返回迭代器的地方都换成了返回生成器,更加优雅,安全,好用$ Q; Z: b) C1 G

    + l! g8 Y/ F- K5 q3 Y
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-7-18 05:06 , Processed in 0.371210 second(s), 60 queries .

    回顶部