QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6549|回复: 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者会有什么区别吗?如果一样,那生成器岂不是没用了?(所以·····)
    4 i7 z6 A5 C4 i) b! W( d: o7 m, w% W- W. t
    def createGenerator() : , O/ E1 m+ h4 M2 d& b$ `( G
        mylist = range(10)
    " F8 ?* w- O7 c/ `" t! j3 M
    ( s# [$ ]9 ?  O' u. p/ x    for i in mylist : 7 q5 s% K1 U0 x" t
            yield i*i
    ' @/ @1 w# x# K7 \" ~# G# b  o. n" V: w, r: l
    mygenerator = createGenerator() # create a generator
    ; X; f7 W7 a+ P, g6 d- m) j/ @; Mprint mygenerator 8 Y" D7 A* D' P6 ?: ]# X4 m. f. T
    ; G; C  A3 v' u" R9 E  q0 P, w5 I
    def createIterator() : 2 R/ q  j7 F1 N- |" l9 n3 K# d
        mylist = range(10) , z% H5 L6 O8 U  Y# K

    " M9 N( X. {) d. {. y% M! ^4 |    return iter([i * i for i in mylist])
    1 O4 N2 A+ c/ d7 k. t7 D' ]' e
    . K' m3 R2 R/ y7 [myiterator = createIterator()
    6 ]5 q' ?" f) Rprint myiterator 4 @! S2 R2 z2 W# e8 [2 I

    : b: }! H# I5 r; F) ]
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    14

    主题

    10

    听众

    43

    积分

    升级  40%

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

    [LV.3]偶尔看看II

    自我介绍
    $ F% M5 S. x2 v5 G. @( P
    2 @2 J# P0 ^, d9 L2 A

    ) o9 Y7 |% P3 x( J+ b; U- P. m2 e
    ! w) U5 u- M3 s  h% z" N( xCat_He 2015-04-07 20:38:08
    + h7 c( X9 r. e4 o5 _
    . v" ]9 D- e& g( t+ e! z* H这样理解?=>生成器是一种懒惰的迭代器 / C4 F$ |8 Z' P
    9 }( J: y& M8 c: c! X
    事实上,在Python3.x中许多原来在Python2.x中返回迭代器的地方都换成了返回生成器,更加优雅,安全,好用
    % A& j# K7 a# G9 b& P  G6 W
    $ j+ X/ j5 W1 M- I5 E0 Y# ~4 b9 ?
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-7-18 02:39 , Processed in 0.403154 second(s), 60 queries .

    回顶部