生成器表达式
生成器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]
"""