QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6517|回复: 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者会有什么区别吗?如果一样,那生成器岂不是没用了?(所以·····)
      H" ?6 @- D4 `% c8 x1 [' _* T6 x0 N# Q4 B# Z2 C
    def createGenerator() :
    7 f$ ^' L4 P1 b2 G    mylist = range(10)
    ( R7 V( k0 c& N: y
    ) H* A2 M6 B/ E) N. r* V' f    for i in mylist : $ b1 R" b& Z' a5 e, X, Z, `
            yield i*i % Q( g6 [  i& {2 y

    - j) c+ T) @: f& M6 v. Z6 D+ smygenerator = createGenerator() # create a generator
    * F  J1 m; N* y' A+ yprint mygenerator
    ; y9 W. f9 |# N* l
    3 c7 p5 [9 ?- B7 W* \def createIterator() :
    2 c$ x; T$ D6 A9 L# _! ~3 a9 ^    mylist = range(10)
    9 I9 J8 X  i# t+ a' i1 n6 ]
    + }  ~4 T$ T, s! T. ^, x* N" s: f    return iter([i * i for i in mylist])
    * K" B5 J! U+ J+ ~& X: Z# I7 I# |/ o* x1 v4 V4 `
    myiterator = createIterator()
    1 U! i, P) ?( o9 v7 s( f  m' [print myiterator
    / d' \" G0 C6 P9 ]8 B
    # y6 ~# d! C6 |) f3 U
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    14

    主题

    10

    听众

    43

    积分

    升级  40%

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

    [LV.3]偶尔看看II

    自我介绍
    5 P7 m& ~5 V  p, `6 ?/ R
    , H7 {" J9 q' a, P4 S
    6 X5 _6 X; T( E- k' b
    3 R$ |$ f" ?) J
    Cat_He 2015-04-07 20:38:08 * o  h4 ~1 [% B

    ; l, i# q2 I3 F5 \$ d这样理解?=>生成器是一种懒惰的迭代器 : g9 o0 y* c. J0 [

    2 h2 H- z( @% {事实上,在Python3.x中许多原来在Python2.x中返回迭代器的地方都换成了返回生成器,更加优雅,安全,好用
    9 e" H8 m/ R4 b7 {9 t  Y
    ) L% K$ M) k$ Y+ Q
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-6-3 02:13 , Processed in 0.573669 second(s), 58 queries .

    回顶部