QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2476|回复: 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者会有什么区别吗?如果一样,那生成器岂不是没用了?(所以·····)
    ) p" a3 e" i1 O5 [  K6 `' p1 u/ T% z0 M' V* A: f
    def createGenerator() : 9 K: k6 r1 f5 C/ I. I0 |3 L
        mylist = range(10)
    4 \2 k: Z# R  Y( F1 d' v
    0 F) }2 n& J* e, {9 f/ ]: H    for i in mylist : : |1 _! l& r8 o& K* ?
            yield i*i
    9 y! O2 y7 e6 c2 E
    ' u* D/ E, r3 m+ y7 ^+ [4 omygenerator = createGenerator() # create a generator
    3 Y( k' Z/ P8 F  ^print mygenerator
    / K8 r4 ?, v' w5 h7 Z7 L; a4 t. P: m4 e9 ~. r8 c; o8 g3 E4 x
    def createIterator() : ) f' [7 o' B6 |2 [. j
        mylist = range(10) + t! s" B& p7 ?4 D) o% F- t
    & G: M" u# `6 p4 m" G! U4 P7 i
        return iter([i * i for i in mylist])   x) S! R. X9 W- W- ]4 P$ Q4 \
    % g" K+ g- e8 `" ~, o
    myiterator = createIterator()   _4 c) r8 }" C, O8 m  w- W
    print myiterator
    ! n: H, f" M2 C7 C4 E) e( s+ P: L% Y1 L& M- n0 e; V
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    14

    主题

    10

    听众

    43

    积分

    升级  40%

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

    [LV.3]偶尔看看II

    自我介绍

    ' t$ U# ]: s. \* z# n4 g: t! i; r" \

    : K, }$ d( o1 s. ^7 a/ a7 ]0 W: L
    Cat_He 2015-04-07 20:38:08
    , A- i! v7 W) r. d; i5 _& o: T9 }( R2 y0 B/ C' j! j! `
    这样理解?=>生成器是一种懒惰的迭代器 8 |  e: p7 {7 P2 B* M, ], e8 b
    , X$ e' c& v2 ~- {
    事实上,在Python3.x中许多原来在Python2.x中返回迭代器的地方都换成了返回生成器,更加优雅,安全,好用; ~3 c- J3 C' d8 k
    $ G* a' r, l. X0 M1 _
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2024-4-26 19:23 , Processed in 0.414924 second(s), 57 queries .

    回顶部