【python学习】多层for 循环结构的优化方法(itertools迭代器) 您所在的位置:网站首页 优化for循环 【python学习】多层for 循环结构的优化方法(itertools迭代器)

【python学习】多层for 循环结构的优化方法(itertools迭代器)

2024-06-17 19:45| 来源: 网络整理| 查看: 265

举🌰:

五个盒子,每个盒子里面有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 实验室设备网 版权所有