QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6552|回复: 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者会有什么区别吗?如果一样,那生成器岂不是没用了?(所以·····)
    % K' G( F6 U. @* }, X6 _. b1 G' u2 k# r  h1 Z" P
    def createGenerator() : + x% P1 @, [3 s8 n8 Q$ O. A( F
        mylist = range(10)
    * \' G  T9 ?/ H3 y+ N' v5 v; K8 e
        for i in mylist : 8 |3 D  D7 G2 R6 v# M6 m* ]5 t
            yield i*i
    4 f4 ]/ Q0 z/ y8 o6 V; m+ v' W
    $ N5 e1 ^4 E& kmygenerator = createGenerator() # create a generator 4 ?; b6 j5 d, m7 J* V, h
    print mygenerator " G  i& C- n7 F# a+ g" p9 y

    ( B3 \$ G! F+ X! o5 t) bdef createIterator() :
    ( Y' P0 d9 w) A  D3 y9 U    mylist = range(10)
    ' G) Y$ j! z, O/ l- r/ k2 i' o2 T; R) @. S" s6 ?- R
        return iter([i * i for i in mylist]) 4 U( W* R# ]0 |. d% {6 l3 O

    + S* V; o6 s3 ~6 X- tmyiterator = createIterator()
    , _* v  R1 X8 ]print myiterator " W6 n1 ^! [6 o

    . ?9 |5 j0 r, s. c- R" h0 `
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    14

    主题

    10

    听众

    43

    积分

    升级  40%

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

    [LV.3]偶尔看看II

    自我介绍
    7 u) D: c% {+ v. G! v' F

    1 U3 d+ y9 Y7 A* x' v- F
    # P& K3 v6 n4 \3 a& f2 h6 L
    3 n& x  S3 n8 l+ H* |3 @+ t- mCat_He 2015-04-07 20:38:08 . c' f1 E9 A8 J+ I8 ], E

    9 |: f; ]. f" H! t0 Q1 i( M( R0 n这样理解?=>生成器是一种懒惰的迭代器
    6 B! {. Q* j# I- J  s
    5 q: g- H6 H  F9 i事实上,在Python3.x中许多原来在Python2.x中返回迭代器的地方都换成了返回生成器,更加优雅,安全,好用* m4 n$ r' v7 N) O4 _- {
    1 s! [8 j1 G; d3 U( I2 n5 x, X
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-7-18 13:35 , Processed in 0.579787 second(s), 59 queries .

    回顶部