QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6583|回复: 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者会有什么区别吗?如果一样,那生成器岂不是没用了?(所以·····) : }' a5 Q- |5 ?$ l

    6 d% Z! r9 o  E, ~def createGenerator() :   V4 R* E+ c  l8 z' k: Z
        mylist = range(10) % j. s# A8 B# j" M1 y1 t% {

    % R( k: A) a6 `: h    for i in mylist :
    3 G# Z  Q" n0 T9 o2 ]  w7 n2 ~        yield i*i
    2 a8 o* J. i: o  f* w
    + i2 h+ C& x3 P9 i1 {; ?mygenerator = createGenerator() # create a generator
    4 c+ f$ l1 N5 n& X) c- h  L7 Tprint mygenerator ' _/ X3 ~1 f5 A4 p
    9 a4 Q% M2 \( z# b
    def createIterator() : 6 _( T* t/ Y' o' r
        mylist = range(10)
    $ _* P2 K+ n, L* b( g+ s' z
    : ~' q0 h7 ^3 l    return iter([i * i for i in mylist])
    8 _. ]/ p, X7 a# U; z: A$ ~7 i7 u" ~& o! P% n
    myiterator = createIterator() ' _, k1 W5 ]- I+ I2 ]! P( A
    print myiterator
    ! H& t0 C7 k* V; V
    $ _: ?4 x0 V% [/ r& Z5 U2 y
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    14

    主题

    10

    听众

    43

    积分

    升级  40%

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

    [LV.3]偶尔看看II

    自我介绍

    8 F; H( X$ u) v. n0 t. g# ~2 `. K& {+ Y

      U5 G0 _7 F7 B
    5 Z# G1 |9 Y) f2 M8 l2 NCat_He 2015-04-07 20:38:08
    0 T/ f* I. N3 G  o. e3 }: R
    4 E  [: Z8 G0 W! O& g9 G3 @, y这样理解?=>生成器是一种懒惰的迭代器 0 Z$ D% O; T- [2 J* M

    1 b; |& ~9 `7 A! X1 M事实上,在Python3.x中许多原来在Python2.x中返回迭代器的地方都换成了返回生成器,更加优雅,安全,好用: L2 x- H% X; @3 N
    , q  X4 w( ^, Y4 y: z; Y5 ~
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-9-3 20:53 , Processed in 0.422404 second(s), 59 queries .

    回顶部