Dictionary 在多处理中,打印函数在另一个打印函数之后给出不同的结果 来自多处理导入池的 从数学导入sqrt,楼层 def是_prime(num): 如果num
正如您在该映射中的sum之后所看到的,列表返回空列表,同时也返回与“0”相同的sum。为什么会发生这种情况?有人能解释一下原因吗? 同时,如果我先打印“subs_sum”项,sum(sub_sum)返回0。很快,当我尝试列出sub_sums元素时,在那行代码之后,sub(sum_sums)以任何方式返回0。Dictionary 在多处理中,打印函数在另一个打印函数之后给出不同的结果 来自多处理导入池的 从数学导入sqrt,楼层 def是_prime(num): 如果num,dictionary,printing,multiprocessing,Dictionary,Printing,Multiprocessing,正如您在该映射中的sum之后所看到的,列表返回空列表,同时也返回与“0”相同的sum。为什么会发生这种情况?有人能解释一下原因吗? 同时,如果我先打印“subs_sum”项,sum(sub_sum)返回0。很快,当我尝试列出sub_sums元素时,在那行代码之后,sub(sum_sums)以任何方式返回0。 from multiprocessing import Pool from math import sqrt, floor def is_prime(num): if num &
from multiprocessing import Pool
from math import sqrt, floor
def is_prime(num):
if num < 2:
raise ValueError("")
if num == 2:
return True
if num % 2 == 0:
return False
dividers = range(3, int(sqrt(num)),2)
for b in dividers:
if num % b == 0:
return False
return True
def prime_sum(numbers):
return [x for x in numbers if is_prime(x)]
if __name__ == "__main__":
p = Pool(processes=4)
results = p.map(prime_sum, [range(500000, 625000),
range(625000, 750000),
range(750000, 875000),
range(875000, 1000000) ] )
print(sub_sums)
print(sum(sub_sums))
print([x for x in sub_sums ])
print(sum(sub_sums))
As output:
<map object at 0x10c685e80>
27670539145
[]
0