Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从函数内部更新全局数组?_Python - Fatal编程技术网

Python 如何从函数内部更新全局数组?

Python 如何从函数内部更新全局数组?,python,Python,我想写一个返回计数为[1,2,3,4]的代码,同时保持并行for循环。我试图从increment函数内部更新全局数组counts,但它从未工作并返回[0,0,0,0]。在并行循环increment函数时,有什么方法可以从increment函数更新counts数组 import numpy as np import multiprocessing as mpp import timeit start = timeit.default_timer() num=5 counts=np.zeros

我想写一个返回计数为
[1,2,3,4]
的代码,同时保持并行
for
循环。我试图从
increment
函数内部更新全局数组
counts
,但它从未工作并返回
[0,0,0,0]
。在并行循环
increment
函数时,有什么方法可以从
increment
函数更新
counts
数组

import numpy as np
import multiprocessing as mpp
import timeit

start = timeit.default_timer()

num=5

counts=np.zeros((num,1))

def increment(k):
    global counts
    counts[k]=counts[k]+k

pool = mpp.Pool(4)
pool.map(increment,[k for k in range(0,num)])

print(counts)

stop = timeit.default_timer()

print('Time: ', stop - start) 

只需返回
计数[k]+k
,并将所需值设置为
增量(k)

这是否回答了您的问题?您应该使用不带锁的单例类。但建议不要对此类过程使用多处理: