QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6577|回复: 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者会有什么区别吗?如果一样,那生成器岂不是没用了?(所以·····) 0 n" i- \0 N5 n! |

    4 U! e1 L% G" U! v$ E* C" s5 p5 s3 pdef createGenerator() :
    % w5 _1 u2 u7 q% F$ l# }$ R( n    mylist = range(10)
    3 K4 h. E3 D" M+ z% P6 r5 F1 x/ {/ G! q# m
        for i in mylist :
    ; X$ O! f1 v2 l- ^. ^' @# T8 i6 W        yield i*i
    ; q, U5 F1 m; b& n0 Y% p/ U( ~- @0 y. Z& m
    mygenerator = createGenerator() # create a generator * a7 U/ R4 r2 G/ e
    print mygenerator ; A  Z3 i+ ~, v8 T. q- o  _

    6 m6 e8 }& c3 Z* _; jdef createIterator() : ! m* l( V  W# ^$ H/ k* r4 y+ m# m, D6 }: H
        mylist = range(10) 7 y* X1 H7 v4 L6 f; _0 T& k
    , ~( x8 }' ?7 f' \5 f' x9 q# T6 |
        return iter([i * i for i in mylist]) 8 x3 ]1 P0 a$ v9 A2 H2 g; y

    0 @5 I7 a: r! ]2 Pmyiterator = createIterator() 3 Y. D, v! r" g+ b9 Y9 r9 H
    print myiterator
    5 b" {  G* @. b$ \9 m0 H' {- U+ H3 r' ~+ L9 ~! w: p
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    14

    主题

    10

    听众

    43

    积分

    升级  40%

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

    [LV.3]偶尔看看II

    自我介绍
    - z8 M6 y0 ?* g
    5 q' B' a5 j* }" l% [
    ; R% _" i) x( P) }7 B* c

    1 v. i7 I9 f( gCat_He 2015-04-07 20:38:08
    / S4 \9 H9 e* i/ \. N9 d8 _
    2 W* U9 Y3 s- O3 q* A  F- D这样理解?=>生成器是一种懒惰的迭代器 # A4 B! F7 h' Y" k, O2 j  ^- V* f9 O
    % w/ c) c3 z; Z  S
    事实上,在Python3.x中许多原来在Python2.x中返回迭代器的地方都换成了返回生成器,更加优雅,安全,好用
    1 C( e1 ^0 L. Z" F" B( C% Z  H. P* q8 e' J% G# W: Z
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-9-1 14:53 , Processed in 0.643526 second(s), 59 queries .

    回顶部