QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6483|回复: 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者会有什么区别吗?如果一样,那生成器岂不是没用了?(所以·····)
    # a$ S1 w# L  u7 e8 S8 B' j) k5 n, z1 Q) E& X8 m# X- Q
    def createGenerator() :
    ) k) ~. D9 P# ~, ?1 e9 U5 T! c    mylist = range(10) % b7 t  b6 Y0 a% u: M

    ( N6 t2 t2 d; V4 B    for i in mylist : & C+ Y+ o1 _8 }) z3 o  g
            yield i*i + @! b9 b7 K( m3 b9 Q  g
    6 [. Q8 t3 A3 U8 V/ g! T
    mygenerator = createGenerator() # create a generator # i6 C/ K& q" |
    print mygenerator ) I, o( Q- p( X/ D8 @: L

    . T  R1 A. ]  j1 u7 a" adef createIterator() :
    . M1 i+ E3 m& E    mylist = range(10) % }2 C0 N% O  J  \! R+ |0 }: U
    4 h9 Q9 c5 C9 q
        return iter([i * i for i in mylist])
    ' w, {4 J$ f. [* k3 }$ Y* \# F8 a  `9 L- d" Q  M0 B2 F$ R: U
    myiterator = createIterator()
      D! \+ x* j: W" Oprint myiterator
    $ \9 i0 l2 b+ N7 _, c! h6 I" W1 O) C  ~+ Z  Y$ @
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    14

    主题

    10

    听众

    43

    积分

    升级  40%

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

    [LV.3]偶尔看看II

    自我介绍
      F  ]- x4 y' R1 G5 R# t6 w
    9 l% W# Q9 [' b- g6 I& O$ ]; I' ~
    ) X) r' D! U% s; ]6 u* L. p  ~

    2 u% C; t5 |+ A5 K- S6 g4 P+ TCat_He 2015-04-07 20:38:08 3 d# _. _: J' n" w0 j

    - ~7 f9 K) I0 h! B- `& R这样理解?=>生成器是一种懒惰的迭代器
    ( d* M( c" ^. z% t" O" y2 N2 i/ ~6 r' D, ~
    事实上,在Python3.x中许多原来在Python2.x中返回迭代器的地方都换成了返回生成器,更加优雅,安全,好用# K& w" k2 \, |' z: J# H

    7 j/ T  E( s1 i! d* [. r
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-4-14 19:37 , Processed in 0.439585 second(s), 59 queries .

    回顶部