QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6521|回复: 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者会有什么区别吗?如果一样,那生成器岂不是没用了?(所以·····)
    # m5 x9 z4 `& [" b5 C6 w8 m' T: ], ?3 P" S
    def createGenerator() :
    - S$ v, H- z4 x8 r. Z9 [( S    mylist = range(10)   S' r# X1 f! g+ F1 X2 ]5 T  T; _& \

    ) J4 k$ Z2 t# O; G    for i in mylist : 1 N+ _1 z$ E# Z
            yield i*i
    9 y, ~: G$ X) J8 v! A' ~1 P
    0 y  T+ V; F* q4 Dmygenerator = createGenerator() # create a generator , C' ]6 e! Q' {
    print mygenerator
    7 `! r1 ~( o( K' U
    ' _' c) O, v2 |+ F, S: odef createIterator() :
    ' f, k' L) h+ u; \: L" o4 y8 e  l+ u    mylist = range(10) " a0 j; h* C4 p
    - ~5 V0 x. o" [$ D- P; i
        return iter([i * i for i in mylist]) 1 H7 l% d# \8 T8 v" C7 c
    5 B) J; O+ B& E! y; ], M
    myiterator = createIterator() ' Y& o" f1 w) R' e+ W  n& z
    print myiterator
    2 U$ l# S0 o' Y; X/ y6 h7 \- k/ J; j
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    14

    主题

    10

    听众

    43

    积分

    升级  40%

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

    [LV.3]偶尔看看II

    自我介绍

    & D# F2 L( {+ I5 l3 x% x* O6 s2 p* o
    % ^6 v2 L. T$ a; ^# _: |$ N. x

    . V" p6 \6 p% P8 }) y; z- N# qCat_He 2015-04-07 20:38:08
    & I& Y/ n) C4 c1 P1 ]: }9 y3 l4 T) K% p( r
    这样理解?=>生成器是一种懒惰的迭代器
    1 ]5 `% q5 D! M" U3 y
    0 \8 L9 Y1 ^' e6 @  x7 e& R/ o事实上,在Python3.x中许多原来在Python2.x中返回迭代器的地方都换成了返回生成器,更加优雅,安全,好用
    - ^3 N: a* Q( G6 `; \, \  F3 X/ d2 z, H
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-6-3 11:11 , Processed in 0.451869 second(s), 60 queries .

    回顶部