python面试题之生成器迭代器

Posted xfdhh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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面试题之生成器迭代器的主要内容,如果未能解决你的问题,请参考以下文章

前端面试题之手写promise

迭代器可迭代对象迭代器对象生成器生成器表达式和相关的面试题

what's the python之可迭代对象迭代器与生成器(附面试题)

python面试题之请谈谈.pyc文件和.py文件的不同之处

Python学习之旅—Day07(生成器与迭代器)

面试题之python基础