我需要爲多維數組或列表創建一個共享對象,以便其他進程可以使用它。有沒有一種方法來創造它,因爲我所看到的是不可能的。我曾嘗試:我可以在python中爲多處理創建共享的多陣列或列表對象列表嗎?
from multiprocessing import Process, Value, Array
arr = Array('i', range(10))
arr[:]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
arr[2]=[12,43]
TypeError: an integer is required
聽說numpy的陣列可以多陣列和一個共享對象,如果上面是不可能有人可以告訴我如何做一個numpy的陣列的共享對象?
我不確定多處理部分,但我知道你爲什麼在那裏接收TypeError:你在第二行初始化整數值的數組。在第5行中,您嘗試將列表分配給數組中的某個點。數組是相對較低級別的對象,不能包含列表,字典,集合和其他python容器類型。 – 2012-03-17 21:56:50
是的,這就是我知道的,我知道爲什麼我得到TypeError。這就是爲什麼我問是否有辦法來超越這個問題,或創建一個共享對象「列表」,或者可能如何使用numpy數組,可以是多數組並使它們成爲共享對象。 – user1249212 2012-03-17 22:07:55
查看這些。然後,圍繞它們構建數據結構:http://effbot.org/pyfaq/what-kinds-of-global-value-mutation-are-thread-safe.htm。 – MrGomez 2012-03-17 23:16:31