生成器试题

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”就退出圈子,...)(代码片段

postman 自动生成 curl 代码片段

postman 自动生成 curl 代码片段

Apollo Codegen 没有找到生成代码的操作或片段

前端开发工具vscode如何快速生成代码片段

前端开发工具vscode如何快速生成代码片段