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面试题之生成器迭代器的主要内容,如果未能解决你的问题,请参考以下文章
what's the python之可迭代对象迭代器与生成器(附面试题)