QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6580|回复: 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者会有什么区别吗?如果一样,那生成器岂不是没用了?(所以·····)
    + F! q2 v4 l# E, M# y* h3 D! W, f* T' H% N* A2 B  E
    def createGenerator() : 9 t' m4 |. t' u6 x4 \
        mylist = range(10)
    ( w/ B  k" I6 u7 i1 ]6 j/ ^+ b6 z$ X; q- U) A2 d, o0 E
        for i in mylist :
    8 K. V( ~" w- y) v4 M        yield i*i / V0 l, D. \0 A( G4 e; r

    4 W  K- U/ o8 U7 l# s9 a( Y! Vmygenerator = createGenerator() # create a generator $ x% i$ I# A- ]8 I' H
    print mygenerator . V  P; z! a+ E% o. n0 X

    : W' i5 F8 N9 P- @def createIterator() :
    ; E, Y2 O+ E& ?5 i/ d    mylist = range(10)
    6 H" z1 a/ s8 ?4 O+ h2 b' S( ]
    / P" ]! ^& t  n* s4 W6 a& u0 n    return iter([i * i for i in mylist])
    ' x: i# {, [3 p  u3 S( {7 t; d: S4 T7 x% g% r: ^
    myiterator = createIterator()
    2 ~9 K4 _. \/ L$ E: q8 Tprint myiterator $ e' @6 D4 K' T1 G+ h
    * w" t  y7 z4 L6 O$ {) i& R
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    14

    主题

    10

    听众

    43

    积分

    升级  40%

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

    [LV.3]偶尔看看II

    自我介绍

    2 j4 G1 X5 l, B/ ^
    ; w. t5 Y* D' }2 h( s* `* ?
    8 z5 C. ~, r- h! W" O  j" |' s/ s3 X9 B, z8 f6 s
    Cat_He 2015-04-07 20:38:08
    $ b' d: w9 }2 M# J+ k( R
    " o" z) ^/ n1 x, V这样理解?=>生成器是一种懒惰的迭代器
    + M  f' g9 n: _4 y/ q
    2 W4 W  _" t4 d+ V! D0 V. j事实上,在Python3.x中许多原来在Python2.x中返回迭代器的地方都换成了返回生成器,更加优雅,安全,好用
    " S( u0 e1 F6 V$ s
    ) R1 ^7 y, l+ c) \4 N) w
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-9-2 07:21 , Processed in 0.485777 second(s), 62 queries .

    回顶部