QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6494|回复: 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者会有什么区别吗?如果一样,那生成器岂不是没用了?(所以·····)
    ( u8 r9 a! }& C+ I6 d8 \  N8 O! U# R) L% d  L: t7 L
    def createGenerator() : % L9 a# J. \# q+ ?- V8 ^" I3 y
        mylist = range(10)
    # ~+ n' B# s+ v% A# S* b
    , s* e# K8 i* d! x( B9 G9 f% t8 p    for i in mylist :
    5 v: G6 Q  p% ?' v1 M1 {        yield i*i # m. G* F4 a8 m% X/ ?' e6 b
    1 g+ O! W. D9 n/ H
    mygenerator = createGenerator() # create a generator ( ~, c* z* T3 _* Z1 t! W( n, P
    print mygenerator & p2 V4 T* O; b& m# C% X

    9 n* l' X$ Z: h! Ndef createIterator() :
    6 e# T/ _; q+ Y    mylist = range(10)
    6 ?! C  g( J1 ?5 g& o) X. J4 s' z. g& J0 _- g( \& `/ q
        return iter([i * i for i in mylist])
    4 s$ ^- q. T& d; E9 L" ^# w9 \- y/ L% x5 n0 f6 k2 q. `
    myiterator = createIterator() 3 e$ q8 @+ _0 I$ P& S
    print myiterator
    5 p9 O2 r  I1 C1 }' X5 J
    2 S5 G+ L! c$ H, _8 \3 Y
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    14

    主题

    10

    听众

    43

    积分

    升级  40%

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

    [LV.3]偶尔看看II

    自我介绍
    7 O% v! S: ?4 b7 @# S! H1 p! ]* L

    % ~! e3 F2 L* [4 E5 @' X7 r0 F: W0 ^( R7 r  T- T

    ! m5 v2 A1 }  k, L& FCat_He 2015-04-07 20:38:08 # ?; y9 \* v" G

    8 _/ M0 q. m/ l- E! {3 w. |; u这样理解?=>生成器是一种懒惰的迭代器
    9 K0 |& c% P2 E3 L# Q# ]7 |, M# y* W' q! o( h* b
    事实上,在Python3.x中许多原来在Python2.x中返回迭代器的地方都换成了返回生成器,更加优雅,安全,好用
    4 Z2 U$ Z/ H0 a7 z  R# K: N% g  ~* [  _  {5 H& l& f
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-4-22 14:08 , Processed in 0.449411 second(s), 60 queries .

    回顶部