QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6538|回复: 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者会有什么区别吗?如果一样,那生成器岂不是没用了?(所以·····)
    1 B( p1 t' O& q7 q; {3 p
    " X: c# H, `" Pdef createGenerator() :
    $ E, S: |! P6 L9 Z7 b/ G  K6 J; K2 o    mylist = range(10)
    / n: u4 a% O; d$ P
    & U5 M) e- ?. U6 R$ _    for i in mylist : ' ^# S4 T8 b- b. h  b- i, ~
            yield i*i
    7 A9 B" X7 ^$ K$ Q
    6 T8 b4 ^) s0 o2 _* Q% i- ?; Wmygenerator = createGenerator() # create a generator
    ( S1 y* e: ^. d  i' }. H2 Z( @1 J6 g5 |# mprint mygenerator : P& P5 v+ `' f9 K

    ) ^; d$ h9 P& O% Xdef createIterator() :
    ! E$ `/ r7 ]- a$ X" C. Y# J    mylist = range(10) 4 C1 d3 |' R, a: a- S/ O

    . Q$ k! f* w/ U$ n$ a    return iter([i * i for i in mylist])
    - b1 e) V/ A1 z2 @' o5 ~4 Z7 v, f1 _" A( ~, u- T; P8 J
    myiterator = createIterator()
    # Z5 h# ~1 {) `print myiterator   d- V( A  n0 U/ U
    ; {% {) m$ ~5 N, R# Y
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    14

    主题

    10

    听众

    43

    积分

    升级  40%

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

    [LV.3]偶尔看看II

    自我介绍

    ' L& ^( m1 P1 H. K+ Y4 n& U2 p
      Y& F* P& V3 x/ ~7 w* H
    ; L" Z. ]/ U+ t" M& _; _. t
    3 H5 W- B$ ]: u: I" {' e# WCat_He 2015-04-07 20:38:08 0 x" ?7 E$ f  X# E  Q* I
    9 o& A2 ?, j# \, c  v
    这样理解?=>生成器是一种懒惰的迭代器 $ ~) c3 v9 l8 m& X5 Q0 e5 Y
    4 w9 R% p# U- o8 U
    事实上,在Python3.x中许多原来在Python2.x中返回迭代器的地方都换成了返回生成器,更加优雅,安全,好用
      s/ K, ]7 A2 G8 d% k0 T! I' b! d* U' {' B6 T8 k; J9 Y
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-7-9 19:24 , Processed in 0.318206 second(s), 60 queries .

    回顶部