小编hmm*_*mmm的帖子

找到组合的更快方法?

我试图找到np.linspace(0,n,n*10+1) 子区间大于宽度的所有可能的子区间(比如宽度 = 0.5)

所以我通过使用 itertools 尝试了这个

import itertools
ranges=np.linspace(0,n,n*10+1)
#find all combinations
combinations=list(itertools.combinations(ranges,2))
#using for-loops to calculate width of each intervals
#and append to new list if the width is greater than 0.5
save=[]
for i in range(len(combinations)):
    if combinations[i][1]-combinations[i][0]>0.5:
        save.append(combinations[i]) 
Run Code Online (Sandbox Code Playgroud)

但这需要太多次,尤其是当 n 变大时,尤其会消耗大量内存

所以我想知道我是否可以在收集组合时更快地修改函数或设置约束

python combinations python-itertools python-3.x

1
推荐指数
1
解决办法
1083
查看次数