QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6579|回复: 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者会有什么区别吗?如果一样,那生成器岂不是没用了?(所以·····) ' l1 O9 G, H" }* A5 v  N" V1 A: F2 W

    : i* _0 S. g2 _+ W6 M% cdef createGenerator() :
    9 b5 q- ^1 i! f. `6 W    mylist = range(10) + ~6 ^' t% o, `. U6 I

    # ?& P& H( Z8 ^- T7 \! q/ ]    for i in mylist :
    : r8 r8 R- `& R, S+ k/ l        yield i*i
    7 `3 |% V+ m7 D- w" ?( d2 E- F. @, ^& _% d7 C3 p! E
    mygenerator = createGenerator() # create a generator : ]0 J" f2 S, _2 r% G: F
    print mygenerator ' I# L: {. E' b' G4 q" P
    # g) k# Q9 V( W7 Q8 Y3 g" [. q
    def createIterator() : / k  F" Z: ^3 l  I# ^
        mylist = range(10)
    6 \* h$ J, w' ~1 N/ T; V! W, y8 {6 S: C& v2 G. x
        return iter([i * i for i in mylist])
    + q+ @& x! j$ k* y: y4 q6 e9 H; s' {: `6 X. L
    myiterator = createIterator()
    ! t1 X) v+ s! i# M& ^$ Gprint myiterator
    * f8 A0 T$ X% N' ]! s. T, H& ^2 y' g; Y$ h
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    14

    主题

    10

    听众

    43

    积分

    升级  40%

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

    [LV.3]偶尔看看II

    自我介绍
    / Z; V6 Z1 I. t+ C2 K$ p0 ~2 U- q
    7 S# }1 G# w( j
    $ Q2 e, U) R9 e2 B' r7 J) ]

    9 G3 g: b" a) nCat_He 2015-04-07 20:38:08
    : m% k6 R* Q  u0 Z* R! f5 `2 U2 V: A& n1 k4 ^7 f
    这样理解?=>生成器是一种懒惰的迭代器
    $ e( ~& O$ V# c4 e- J: A0 {# A4 V
    事实上,在Python3.x中许多原来在Python2.x中返回迭代器的地方都换成了返回生成器,更加优雅,安全,好用
    ) J, E' n6 u% ^! j7 G2 i- N( v9 `
    4 r3 v( l9 ?$ j. n2 g2 Z
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-9-2 04:37 , Processed in 0.434357 second(s), 59 queries .

    回顶部