码迷,mamicode.com
首页 > 编程语言 > 详细

python面试题之生成器迭代器

时间:2018-11-03 00:02:42      阅读:341      评论:0      收藏:0      [点我收藏+]

标签:表达   面试题1   dem   python   pytho   range   面试题   for   Python面试   

面试题1

  主要考察知识点:生成器从头到尾只能取一次值

def demo():
    for i in range(4):
        yield i

g = demo()
g1 = (i for i in g)
g2 = (i for i in g1)
print(list(g1))
print(list(g2))

  *list数据类型强转也可以读取生成器的值,g1被list读取完后g2已经读取不到了

面试题2   当for循环套上生成器表达式时就拆开,一定要注意生成器不调用时就不执行的特点(惰性)

def add(n,i):
    return n+i

def test():
    for i in range(4):
        yield i 

g = test()
for n in [1,10]:
    g = (add(n,i) for i in g)
print(list(g))

 

  

 

python面试题之生成器迭代器

标签:表达   面试题1   dem   python   pytho   range   面试题   for   Python面试   

原文地址:https://www.cnblogs.com/xfdhh/p/9898387.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!