QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6581|回复: 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者会有什么区别吗?如果一样,那生成器岂不是没用了?(所以·····) 0 y8 y2 |) K1 y5 o* c& U! z

    / i$ l! a% d( W) D# Fdef createGenerator() : 1 t9 V1 U' L/ F; i2 h
        mylist = range(10)
    : ^* \9 i. p1 U. b( @: O" Q6 d
    . u' w1 a4 I% [5 [5 K9 s: E    for i in mylist : - e3 P* Q1 P! ~: F) y- z! K9 f
            yield i*i 7 l$ a) T" t$ l. @% A  ?  @6 s

    7 {5 H; |: I3 R& {! O3 b/ ^% s( |mygenerator = createGenerator() # create a generator & t4 K! F; v; ~1 Y+ M
    print mygenerator
    0 L! c7 ]) `, j" c2 o$ @- C, C9 A( w4 D/ D
    def createIterator() : - F: h2 i7 y# S7 d  Q4 ^" a
        mylist = range(10)
    6 F7 i0 v5 j0 t& a& ?' J
    0 r! f/ a8 e3 Y/ \7 b2 N9 u6 N    return iter([i * i for i in mylist]) / N* y) X( ?" y5 Z. u

    3 q# s4 N) k& v) b# Nmyiterator = createIterator()
    ) @, G; M: u+ k  [  Rprint myiterator
    ; m  Y' x5 S1 T# c5 C% m5 a( ?1 B2 H8 t
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    14

    主题

    10

    听众

    43

    积分

    升级  40%

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

    [LV.3]偶尔看看II

    自我介绍

    $ _4 w, k* h" q+ K( t! J3 d) T$ q' b. I5 u

    ; b& T7 z: ^: A& h- b( V) _* |; l( U4 e0 y9 s) D
    Cat_He 2015-04-07 20:38:08 9 t2 l' T' w; w) R" u

    . }. ^$ X5 w: u$ x+ q0 {( m1 q( h这样理解?=>生成器是一种懒惰的迭代器
    4 c/ S* ^! l* p1 E" R, T4 e' r. P9 C9 S4 a" f
    事实上,在Python3.x中许多原来在Python2.x中返回迭代器的地方都换成了返回生成器,更加优雅,安全,好用5 s% @/ _. R. C8 C, b" s

    $ N7 g6 r8 ?; u  x8 v, p
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-9-2 16:00 , Processed in 0.331418 second(s), 60 queries .

    回顶部