QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6249|回复: 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者会有什么区别吗?如果一样,那生成器岂不是没用了?(所以·····)
    * N- g# n5 L# I6 Q% G% I; T7 M( W
      q2 V1 b8 T. e; I# Xdef createGenerator() : # I# a& ~. G* w1 i) Z
        mylist = range(10) " c7 ?3 L6 G) O2 [: {
    9 ?1 v, k1 o- h- i0 p4 i
        for i in mylist :
    6 [7 V( f# x, r        yield i*i
    + I3 r2 D& h' o9 U# ~6 x( j2 S$ N5 L7 P* p# X
    mygenerator = createGenerator() # create a generator
    5 N" e# i# t$ A% W# tprint mygenerator
    8 Q, Y7 j+ a8 {4 i9 Y
    " V9 O( V& g' g! Q% ~! G1 q1 Vdef createIterator() :
    3 Y6 E% s; M3 G1 _. y. o    mylist = range(10) ; T6 n" ]; A8 f! K# |. s5 }) u8 y( h

    / O1 C- I5 J, e2 q" H) a% t    return iter([i * i for i in mylist]) 4 a, Q+ K/ l8 w  C! m% G% U

    & J! I/ e" X6 z/ Jmyiterator = createIterator()
    . u' s, N: a, C( {$ D% Hprint myiterator 7 ]: Y0 ?- d: k) w% n

    $ a, G  x: I. J* [3 h  v1 y
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    14

    主题

    10

    听众

    43

    积分

    升级  40%

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

    [LV.3]偶尔看看II

    自我介绍

    / c: J1 t0 F. ^' V$ w; V3 c: L5 e! X$ c3 @0 m
      q# Z3 A0 R( E; U4 ?1 n

    % e6 d: X4 R: S! U1 u* DCat_He 2015-04-07 20:38:08 & y& \$ U* ?- ?. N' r& l, B

    ' X  o2 o, {% ]: {9 k% U这样理解?=>生成器是一种懒惰的迭代器 ( N: z: ?( \" ^/ G

    9 p4 u2 v8 ]! c% |% M3 _事实上,在Python3.x中许多原来在Python2.x中返回迭代器的地方都换成了返回生成器,更加优雅,安全,好用
    - i' _4 T6 ]% u9 h/ m4 @* x3 b+ |2 O* I; `( F
    5 A3 R% A/ @" @8 q
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2025-12-29 07:44 , Processed in 0.592981 second(s), 57 queries .

    回顶部