生成器试题
Posted ccqc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生成器试题相关的知识,希望对你有一定的参考价值。
生成器试题
生成器加载的时候都不运行,只有最后取值的时候才进行运算
1 def add(n,i): 2 return n+i 3 4 def test(): 5 for i in range(4): 6 yield i 7 8 g=test() 9 10 for n in [1,2,3]: 11 g=(add(n,i) for i in g) 12 #等价于 13 ##### 14 n = 1 15 g=(add(n,i) for i in g) 16 n = 2 17 g=(add(n,i) for i in g) 18 n = 3 19 g=(add(n,i) for i in g) 20 ##### 21 n = 1 22 g=(add(n,i) for i in g) 23 n = 2 24 g=(add(n,i) for i in (add(n,i) for i in g)) 25 n = 3 26 g=(add(n,i) for i in (add(n,i) for i in (add(n,i) for i in g))) 27 ##### 28 n = 1 29 g=(add(n,i) for i in g) 30 n = 2 31 g=(add(n,i) for i in (add(n,i) for i in g)) 32 n = 3 33 g=(add(n,i) for i in (add(n,i) for i in (add(n,i) for i in test()))) 34 #test() (0,1,2,3) 35 ##### 36 n = 1 37 g=(add(n,i) for i in g) 38 n = 2 39 g=(add(n,i) for i in (add(n,i) for i in g)) 40 n = 3 41 g=(add(n,i) for i in (add(n,i) for i in (add(3,i) for i in (0,1,2,3)))) 42 ##### 43 n = 1 44 g=(add(n,i) for i in g) 45 n = 2 46 g=(add(n,i) for i in (add(n,i) for i in g)) 47 n = 3 48 g=(add(n,i) for i in (add(3,i) for i in (3,4,5,6))) 49 ##### 50 n = 1 51 g=(add(n,i) for i in g) 52 n = 2 53 g=(add(n,i) for i in (add(n,i) for i in g)) 54 n = 3 55 g=(add(3,i) for i in (6,7,8,9)) 56 ##### 57 58 print(list(g))
以上是关于生成器试题的主要内容,如果未能解决你的问题,请参考以下文章
C语言必会面试题(3耶稣有13个门徒,当中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个開始报号:1,2,3,1,2,3...。凡是报到“3”就退出圈子,...)(代码片段