当前位置:首页 » 编程语言 » 笛卡尔积python

笛卡尔积python

发布时间: 2024-04-06 18:46:55

python中断多重循环的几种思路

事实上,Python的标准语法是不支持跳出多重循环的,所以只能利用一些技巧,大概的思路有:写成函数、利用笛卡尔积、利用调试。
写成函数
在Python中,函数运行到return这一句就会停止,因此可以利用这一特性,将功能写成函数,终止多重循环,例如
def work(): for i in range(10): for j in range(10): if i+j > 5: return i,jprint work()

利用笛卡尔积
这种方法的思路就是,既然可以跳出单循环,我就将多重循环改写为单循环,这可以利用itertools中的笛卡尔积函数proct,例如
from itertools import proctfor i,j in proct(range(10), range(10)): if i+j > 5: print i,j break

利用调试模式
笛卡尔积的方式很巧妙,也很简洁,但它只能用于每次循环的集合都是独立的情形,假如每层循环都与前一层紧密相关,就不能用这种技巧了。这时候可以用第一种方法,将它写成函数,另外,还可以利用调试模式。这个利用了调试模式中,只要出现报错就退出的原理,它伪装了一个错误出来。
class Found(Exception): passtry: for i in range(10): for j in range(i): #第二重循环跟第一重有关 if i + j > 5: raise Foundexcept Found: print i, j

⑵ Excel的公式参照有不定数的同码重复列,以设定的条件,依序读取也有不定数的同码重复的列

按你的需求,用excel公式不可能实现,H!B列和CP!D列有重复值是硬伤,两张表这两个字段进行关联后,记录数将是笛卡尔积,而不是你要求的取B列中重复记录个数。
用python去写吧,更容易实现一些。

热点内容
linux硬盘空间 发布:2024-11-28 13:55:55 浏览:531
写简单编译器 发布:2024-11-28 13:55:42 浏览:512
编译net时 发布:2024-11-28 13:52:38 浏览:405
sqlserver2008分区表 发布:2024-11-28 13:41:58 浏览:481
php输出array 发布:2024-11-28 13:30:15 浏览:745
汽车安卓大屏的高德怎么卸载 发布:2024-11-28 13:26:00 浏览:701
androidbitmap失真 发布:2024-11-28 13:05:04 浏览:866
php图片识别文字 发布:2024-11-28 12:55:23 浏览:823
redis永久缓存 发布:2024-11-28 12:37:40 浏览:56
php是自学网 发布:2024-11-28 12:33:57 浏览:733