QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6539|回复: 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者会有什么区别吗?如果一样,那生成器岂不是没用了?(所以·····) ; R! W! A, {9 j

    1 L( s6 w1 H4 v0 |3 _# ~. Ydef createGenerator() : - `; D" f2 R/ s# X5 c: O& Q
        mylist = range(10) 0 @6 p$ F  v4 n- m9 C9 M5 t

    $ t- |& m6 h+ b0 |4 _- X9 u+ r    for i in mylist :
    : T$ x6 |- V/ v; G6 }) R7 `. o! h        yield i*i & L  a& Z) o1 K8 ~. n

    0 F' n5 j- q4 k: p8 @mygenerator = createGenerator() # create a generator $ f3 O* S4 x- Z& K7 V0 P, m, f/ R
    print mygenerator
    ' C0 ?, C3 p) `
    ! o5 g/ Z* d: C' U3 Pdef createIterator() :
    - a3 X0 |* q$ Q; c: B* }    mylist = range(10)
    4 Y) G  S- d3 p' F! i5 L7 H8 g. D% N$ O% G( O) p6 N
        return iter([i * i for i in mylist])
    . s, I% a" ?4 \: L- a( I7 W
    $ u( _/ I* N  B# k; Nmyiterator = createIterator()
    % F- g9 s# R! s# v1 K2 Kprint myiterator " s) E5 ~9 n! z( D

    % O7 n9 \) g# n9 Q0 C
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    14

    主题

    10

    听众

    43

    积分

    升级  40%

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

    [LV.3]偶尔看看II

    自我介绍

    $ \3 z8 C" j" i& j1 X! E  B, u
    " s$ C  W- l4 l  H, k" l# d% t6 B- d+ `$ U( P( q5 A
    5 P8 p$ M8 j" n9 Q3 d( y. L
    Cat_He 2015-04-07 20:38:08
    " C, m2 g( _+ a/ H4 W* G% K' s! J! M' }6 H
    这样理解?=>生成器是一种懒惰的迭代器 - E% Y4 U; [/ ^  M0 ^

    ; ~& a4 i1 x9 q0 g3 m* `事实上,在Python3.x中许多原来在Python2.x中返回迭代器的地方都换成了返回生成器,更加优雅,安全,好用
    ! i1 r0 b9 L/ n/ G+ P! l5 k) I
    2 ^; O$ m5 T, `+ D5 z& B* Q
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-7-9 20:45 , Processed in 0.394239 second(s), 60 queries .

    回顶部