【python学习】多层for 循环结构的优化方法(itertools迭代器) | 您所在的位置:网站首页 › 优化for循环 › 【python学习】多层for 循环结构的优化方法(itertools迭代器) |
举🌰: 五个盒子,每个盒子里面有3个球(数字表示),每次每个盒子取一个,求组合数,球编号之和。 方法一:for 循环--多层嵌套 box,box1,box2 = [0,1,2],[0,3,4],[0,5,6] # 0,1,2 三个盒子,数字代表球的种类 box3,box4,box5 = [0,5,6],[0,3,4],[0,1,2] # 3,4,5 三个盒子 Box = [box,box1,box2,box3,box4,box5] count = 0 # methond 1 for a in Box[0]: for b in Box[1]: for c in Box[2]: for d in Box[3]: for e in Box[4]: for f in Box[5]: print((a,b,c,d,e,f),sep = ',') sum = a+b+c+d+e+f print("sum:",sum) count += 1 print("count:",int(count)) # 运行结果(展示一部分) .............. (2, 4, 6, 6, 3, 2) sum: 23 count: 726 (2, 4, 6, 6, 4, 0) sum: 22 count: 727 (2, 4, 6, 6, 4, 1) sum: 23 count: 728 (2, 4, 6, 6, 4, 2) sum: 24 count: 729方法一代码太low了,脸上挂不住啊~ 方法二:python内置itertools迭代器,具体介绍可以看一下这位小哥的博客: https://blog.csdn.net/u013300049/article/details/79313979 import itertools box,box1,box2 = [0,1,2],[0,3,4],[0,5,6] box3,box4,box5 = [0,5,6],[0,3,4],[0,1,2] Box = [box,box1,box2,box3,box4,box5] count = 0 # methond 2 for i in itertools.product(box,box1,box2,box3,box4 ,box5): print(i) count += 1 print("sum:",sum(i)) print("count:",count) # 结果(展示部分) .............. (2, 4, 6, 6, 3, 2) sum: 23 count: 726 (2, 4, 6, 6, 4, 0) sum: 22 count: 727 (2, 4, 6, 6, 4, 1) sum: 23 count: 728 (2, 4, 6, 6, 4, 2) sum: 24 count: 729总结:如果这篇博客让你有多一点点了解编程知识,那就点个赞吧! |
CopyRight 2018-2019 实验室设备网 版权所有 |