【Python入门学习】列表生成和函数生成器的方式实现杨辉三角
2024-10-22 07:50:56
列表生成:
L = [i for i in range(10)]
列表生成器:
g = (i for i in range(10))
函数生成器使用的关键字yield实现
例如fib生成器
1 def fib(max):
2 n, a, b = 0, 0, 1
3 while n < max:
4 #print(b)
5 yield b
6 a, b = b, a + b
7 n = n + 1
8 return 'done'
杨辉三角定义如下:
1
/ \
1 1
/ \ / \
1 2 1
/ \ / \ / \
1 3 3 1
/ \ / \ / \ / \
1 4 6 4 1
/ \ / \ / \ / \ / \
1 5 10 10 5 1把每一行看做一个list,试写一个generator,不断输出下一行的list:1 def triangles():
2 n = 0
3 L1 = [1]
4 L2 = [1, 1]
5 L = []
6 while True:
7 n += 1
8 if n == 1:
9 L = L1
10 elif n == 2:
11 L = L2
12 yield L
13 L = [L[i] + L[i+1] for i in range(len(L) - 1)]
14 L.insert(0, 1)
15 L.append(1)
16
17 n = 0
18 results = []
19 for t in triangles():
20 print(t)
21 results.append(t)
22 n = n + 1
23 if n == 10:
24 break
25
26 if results == [
27 [1],
28 [1, 1],
29 [1, 2, 1],
30 [1, 3, 3, 1],
31 [1, 4, 6, 4, 1],
32 [1, 5, 10, 10, 5, 1],
33 [1, 6, 15, 20, 15, 6, 1],
34 [1, 7, 21, 35, 35, 21, 7, 1],
35 [1, 8, 28, 56, 70, 56, 28, 8, 1],
36 [1, 9, 36, 84, 126, 126, 84, 36, 9, 1]
37 ]:
38 print('测试通过!')
39 else:
40 print('测试失败!')
最新文章
- div非弹出框半透明遮罩实现全屏幕遮盖css实现
- MySQL主从复制中断,报“Error on master: message (format)=&#39;Cannot delete or update a parent row: a foreign key constraint fails&#39; error code=1217” 错误
- Hibernate总结(一)
- Oracle数据库内置函数
- Java 中无参带返回值方法的使用
- HDU5794 A Simple Chess 容斥+lucas
- collection系列用法-defaultdict()
- 二分 Intel Code Challenge Elimination Round (Div.1 + Div.2, combined) D
- git 对 Microsoft Word 进行版本控制
- 如何登录mysql? cmd怎么连接mysql数据库||从MYSQL客户端登录MYSQL
- Android的ViewFlipper-android学习之旅(三十五)
- Matlab调用Java类
- Goroutine通信与thread in java间的通信
- 用Spring Boot去创建web service
- c++数据类型漫谈
- 068 Oozie任务调度框架
- 【Ruby】【高级编程】正则
- mysql存储过程中使用游标
- 斐波那契数列的5种python实现写法
- Matplotlib的初次使用