生成器表达式

生成器表达式
    生成器1.生成器会主动地执行任何一行代码
          2.生成器必须通过__next__来触发代码的运行
          
列表生成式  例子:     """
# res = [i for i in range(1,10) if i !=4 ]
# print(res)
# 结果:[1, 2, 3, 5, 6, 7, 8, 9]生成一个列表
# for循环i 将1到10 的值逐个富裕到i  后面如果i不等于4  那么就剔除不要4然后选择变量接受
"""生成器表达式
"""
res1 = (i for i in range(1,1000000)if i!=4)
print(res1.__next__())
#必须通过__next__来运行  拍一下出来一个

"""
面试题 根据一下函数选择出正确的答案
"""
def add (n,i):
    return n+1
def test():
    for i in range(4):  #这时候的i  = 0
        yield i

g = test()      # g=test的内存地址 给g 加括号就是调动这函数
for n in [1,10]: #n = 10
    g=(add(n,i) for i in g) #i
print(n)
res=list(g)
# 第一次for循环g=(add(n,i) for i in test())

    # 第二次for循环g=(add(n,i) for i in (add(n,i) for i in test()))

"""
for i in (add(10,i) for i in test()):  会执行所有的生成器内部的代码
    add(n,i)

答案:
A. res = [10,11,12,13]
B. res = [11,12,13,14]
C. res = [20,21,22,23]
D. res = [21,22,23,24]

"""
原文地址:https://www.cnblogs.com/yangxinpython/p/11191338.html