- 在线时间
- 4 小时
- 最后登录
- 2015-5-5
- 注册时间
- 2015-4-8
- 听众数
- 9
- 收听数
- 0
- 能力
- 0 分
- 体力
- 86 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 38
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 22
- 主题
- 12
- 精华
- 0
- 分享
- 0
- 好友
- 3
升级   34.74% TA的每日心情 | 慵懒 2015-5-5 09:35 |
|---|
签到天数: 10 天 [LV.3]偶尔看看II
- 自我介绍
- sdc
 |
Python的生成器语法,会返回一个生成器对象,而用iter()函数,也能返回一个带有next()方法的可迭代对象,这样的话··按照我下面的写法,2者会有什么区别吗?如果一样,那生成器岂不是没用了?(所以·····)
" w3 L/ X. F: G; n w( Q- f1 F6 d. S$ A8 O& ^1 K& _; N' w3 V8 a
def createGenerator() :
7 I& Q/ ?7 k) ^6 _9 k: V/ w* _ mylist = range(10)
; Q! I" u. G% L5 [8 _
- p' G H0 f, Z( [- d, J! w for i in mylist : ! k& e1 E7 Q+ [- n1 V# y* \
yield i*i - w" J& C! ?+ h! |% v
/ g; `/ K3 [/ v2 V9 X9 p# H0 Hmygenerator = createGenerator() # create a generator
, q: ~, Z: F3 j6 T6 X9 g5 ~1 aprint mygenerator 6 B; a0 C0 F3 \' m# L1 e, T: v
4 s8 A0 f8 c+ U3 H4 q" d v" `def createIterator() :
3 v7 f8 @, A- U mylist = range(10) {# V' X8 f, I, b( q; x
$ z e* ?* ?8 J9 Q; S) @ return iter([i * i for i in mylist]) 8 p* J( r% y9 c
* ?- b% G8 g3 ]4 v) `myiterator = createIterator()
( a" i1 m/ J/ iprint myiterator ( `2 s+ }4 r! o* l4 e6 h5 o
+ z+ ~; S' y: A- W& S
|
zan
|