QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6575|回复: 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者会有什么区别吗?如果一样,那生成器岂不是没用了?(所以·····)
    % g6 P8 \/ m6 @
    ' @' e( `1 i: m" J' S: B) _3 wdef createGenerator() :
    & I2 p* ^+ l$ ^# [    mylist = range(10) ( }& y/ z$ B* c% D
    - K% ]1 F$ h7 A0 O5 F3 Z: z
        for i in mylist :
    0 k  s5 G+ L- O8 [3 ]. ^* H        yield i*i
    ' B/ I  H, C' n! c
    3 Q! C. I. q' A6 c$ Ymygenerator = createGenerator() # create a generator
    6 R# l' T7 f- x; ^# Z6 |: |print mygenerator
    9 I( s$ g# U0 A. B( T6 u3 ?! w
    ' a5 y* W0 A$ ?! v0 _def createIterator() :
    . y5 @2 g, E  o) {6 F0 w    mylist = range(10)
    9 n# v" V% I9 r3 S
    8 W" y- P2 J# \- o: u  ]- v. j    return iter([i * i for i in mylist])
    ' b0 j1 |3 y$ R# p: U' R
    , R% ~+ L4 L+ i  g$ ?myiterator = createIterator()
    8 v' f  V/ u. g4 T, }# eprint myiterator " h2 O8 f: p6 V
    , G0 W% _8 }1 r2 ^) g
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    14

    主题

    10

    听众

    43

    积分

    升级  40%

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

    [LV.3]偶尔看看II

    自我介绍
    $ D: G  w1 G1 w% R. n

    0 X6 @- e8 T0 D2 J" k# B1 Y& P/ W" C, y% Q* c
    0 U8 L5 K1 U/ W- j7 {3 [
    Cat_He 2015-04-07 20:38:08 # p3 J  I2 p, M  ?

    " w3 |1 e7 I. t: l这样理解?=>生成器是一种懒惰的迭代器 ! v9 ]$ V; Z2 d% w0 Z$ Z( O
    0 L! {( @% e5 {, l" l8 K2 N
    事实上,在Python3.x中许多原来在Python2.x中返回迭代器的地方都换成了返回生成器,更加优雅,安全,好用6 G- K2 Y0 ~& d( s
    ' d' n* d1 ]- `# H
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-8-28 07:08 , Processed in 0.828595 second(s), 59 queries .

    回顶部