将 manager.dict() 转换为形式为 [[a,b,c]、[q,w,e]、[e,r,t]....] 的元组列表



我正在使用多处理来提高我使用的程序的计算速度

manager=Manager()   
parallel_array_sites=manager.dict()
find_sites()
removal()

find_sites函数正常运行

我的删除功能是

global array_sites  
for i in parallel_array_sites:
array_sites.append(i)
#----not very relevant from here on-----
count = 0
remove_sites = {} # dictionary which contains index to remove sites
for i in range(len(array_sites)):
remove_sites[i] = 0
for i in range(len(array_sites)): 
if remove_sites[i]:
continue   
for j in range(len(array_sites)):
if(j > i and remove_sites[j] == 0):
x = array_sites[i][0] - array_sites[j][0]
y = array_sites[i][1] - array_sites[j][1]
z = array_sites[i][2] - array_sites[j][2] 
r = math.sqrt(x*x + y*y + z*z)
if(r < (rmin/1.1)):
count = count + 1
remove_sites[j] = 1
print "after removel",len(array_sites)
#print remove_sites             
count = 0
for key,val in remove_sites.iteritems():
if(val == 1):
del array_sites[key-count]
count = count + 1

删除函数要求我使用存储在

parallel_array_sites

作为列表中的元组

array_sites

parallel_array_list中的所有对象都是每个元组 3 个元素 条目的数量可能相当大,这就是为什么我不想在声明multiprocessing.list((时指定大小。

循环

for i in parallel_array_sites:
array_sites.append(i)

不起作用,并给出以下错误:

File "/usr/lib/python2.7/multiprocessing/managers.py", line 774, in _callmethod
raise convert_to_error(kind, result)
KeyError: 1081

需要帮助进行任何更改

已使用

for i in range(len(parallel_array_sites)):
array_sites.append(parallel_array_sites[i])

而是因为

for i in parallel_array_sites:

不适用于字典

相关内容

  • 没有找到相关文章

最新更新