Python多处理列表附加在for循环中

时间:2020-08-18 07:54:28

标签: python multiprocessing

我对多重处理的经验为零,但我正在尝试将其应用于此功能。

def overlap_check(x,y,z,radius,N):
   problematic=[]
   for pair in combinations(range(N),2):
       distance=sqrt((x[pair[0]]-x[pair[1]])**2+(y[pair[0]]-y[pair[1]])**2+(z[pair[0]]-z[pair[1]])**2)
       if distance<2*radius:
           problematic.append(pair[0])
   return list(set(problematic))

为说明其作用,我基本上制作了N个半径为R的球体,它们随机分布在3D空间中。 (x,y,z)是中心坐标的列表。此功能通过比较所有球之间的距离(通过for循环)来检查相互重叠的球。如果存在重叠,则将球体保存为“有问题的”,然后将其转换为set()并返回到list()以消除任何重复。

我将不胜感激。

0 个答案:

没有答案