LINUX.ORG.RU

Python3 передать аргументы pool.map

 ,


0

1

Всем привет. Как передать аргументы?

from multiprocessing.dummy import Pool as ThreadPool
from functools import partial

i = [[{'A': 'hh', 'B': 'gg'}, {'A': 'dd', 'B': 'vv'}, {'A': 'vv', 'B': 'hh'}], [{'A': 'hh', 'B': 'gg'}, {'A': 'dd', 'B': 'vv'}, {'A': 'vv', 'B': 'hh'}]]

list = ['1.1','2.2']

def run(i,list):
    print(i)
    print(list)


def thread_pool():
     with ThreadPool(processes=3) as pool:
        return pool.map(partial(run,i),list)

В таком случае передается весь список i; а хочется передать списки (x) внутри списка i:

for x in i:
    print(x)

Может и не pool.map нужен.

p/s Спасибо, всем кто не прошел мимо.



Последнее исправление: kexop (всего исправлений: 2)

Не за что, перепиши вопрос так, чтобы он был понятен другим людям.

anonymous
()
Ответ на: комментарий от anonymous

А что не ясно , написал?. Хочу передавать не весь список i:

i = [[{'A': 'hh', 'B': 'gg'}, {'A': 'dd', 'B': 'vv'}, {'A': 'vv', 'B': 'hh'}], [{'A': 'hh', 'B': 'gg'}, {'A': 'dd', 'B': 'vv'}, {'A': 'vv', 'B': 'hh'}]]
а списки внутри списка i, в данном случае их два:
[{'A': 'hh', 'B': 'gg'}, {'A': 'dd', 'B': 'vv'}, {'A': 'vv', 'B': 'hh'}]
[{'A': 'hh', 'B': 'gg'}, {'A': 'dd', 'B': 'vv'}, {'A': 'vv', 'B': 'hh'}]

Куда еще яснее, тебе надо написать?

kexop
() автор топика
Ответ на: комментарий от kexop

Куда еще яснее, тебе надо написать?

Куда ты их собрался передавать? Все в каждый тред или по одному? Что за игры тогда ты с partial устроил?

anonymous
()
Ответ на: комментарий от anonymous

Точно извиняюсь работает, но выхлоп:

[{'A': 'hh', 'B': 'gg'}, {'A': 'dd', 'B': 'vv'}, {'A': 'vv', 'B': 'hh'}]
['1.1', '2.2']
[{'A': 'hh', 'B': 'gg'}, {'A': 'dd', 'B': 'vv'}, {'A': 'vv', 'B': 'hh'}]
['1.1', '2.2']
А надо:
[{'A': 'hh', 'B': 'gg'}, {'A': 'dd', 'B': 'vv'}, {'A': 'vv', 'B': 'hh'}]
1.1
[{'A': 'hh', 'B': 'gg'}, {'A': 'dd', 'B': 'vv'}, {'A': 'vv', 'B': 'hh'}]
2.2

kexop
() автор топика
Ответ на: комментарий от anonymous

А надо было с этого начинать.

Согласен. Спасибо за решение.

kexop
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.