QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6485|回复: 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者会有什么区别吗?如果一样,那生成器岂不是没用了?(所以·····)
    ! x8 W. x1 o3 O- k1 T2 p; ^9 w3 Z$ Y# `8 W$ D, I. f3 c
    def createGenerator() : ) `0 i  s2 g0 q
        mylist = range(10)
    - T' x. E+ W- U* ?2 }' X  k" J- }2 ~
        for i in mylist :
      w& s: |' f9 k8 }1 u1 s) E0 }        yield i*i
    1 E. E6 O) v# _. }1 w- S4 U/ M4 o, Y8 T) ~. r6 G
    mygenerator = createGenerator() # create a generator ( a0 p0 i7 p! l0 ^" Y3 u
    print mygenerator
    & {" H& v  ~$ i& U* E
    : R' M( e6 s3 y0 rdef createIterator() :
    ( r( Z8 X, l3 w# Z  o& s  j" ^0 K    mylist = range(10)
    ' M* s; ~2 F  k! \& Z0 @0 \# @# ]9 f6 \' J* \* h( c
        return iter([i * i for i in mylist])
    & ^' K4 c! j$ X6 I. d8 p! t
    ' ?1 B5 H' C( A. Imyiterator = createIterator() / H# F* Y) |+ [1 L- E8 V
    print myiterator
    1 S: F4 U2 C' `% |4 ^" v% M$ |7 q# k8 Y& U/ \. `
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    14

    主题

    10

    听众

    43

    积分

    升级  40%

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

    [LV.3]偶尔看看II

    自我介绍

    ' F5 P6 t- ~5 |9 a7 E' J8 v8 l
    ! I  ^  a. T' Y; D% f) B
    : ^3 o$ ]* S" ^* T
    8 a: u' q' ~% X, z- z8 LCat_He 2015-04-07 20:38:08 7 P5 E. I' L) g, T" M$ s

    ( D8 g8 z4 l* n9 ^这样理解?=>生成器是一种懒惰的迭代器 ' Z5 Y: N4 U, ~; x
    ; \. D/ W6 f! ?. q8 D
    事实上,在Python3.x中许多原来在Python2.x中返回迭代器的地方都换成了返回生成器,更加优雅,安全,好用: m* Q$ E; T" q5 o5 i9 a$ w& \

    $ q4 V( s7 x# Q) U; `$ {. S
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-4-15 12:34 , Processed in 0.398976 second(s), 60 queries .

    回顶部