Поделиться списком между разными процессами?Python

Программы на Python
Ответить
Anonymous
 Поделиться списком между разными процессами?

Сообщение Anonymous »

У меня следующая проблема. Я написал функцию, которая принимает на вход список и создает словарь для каждого элемента в списке. Затем я хочу добавить этот словарь в новый список, чтобы получить список словарей. Я пытаюсь создать для этого несколько процессов. Моя проблема в том, что я хочу, чтобы разные процессы имели доступ к списку словарей, когда он обновляется другими процессами, например, чтобы распечатать что-то, когда он достигнет определенной длины.
Мой пример будет таким:

Код: Выделить всё

import multiprocessing

list=['A', 'B', 'C', 'D', 'E', 'F']

def do_stuff(element):
element_dict={}
element_dict['name']=element
new_list=[]
new_list.append(element_dict)
if len(new_list)>3:
print 'list > 3'

###Main###
pool=multiprocessing.Pool(processes=6)
pool.map(do_stuff, list)
pool.close()
Сейчас моя проблема в том, что каждый процесс создает свой собственный new_list. Есть ли способ поделиться списком между процессами, чтобы все словари добавлялись в один и тот же список? Или это единственный способ определить new_list вне функции?

Подробнее здесь: https://stackoverflow.com/questions/406 ... -processes
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»