Форум сайта python.su
Проблема заключается в том результат работы параллельных процессов getresult() получаем в виде:
process = 3
("process1result0", "process2result0", "process3result0")
...
("process1result101", "process2result101", "process3result101")
for i in range(len(nodes)):
while r = getresult():
nodes[i].append((r,))
znodes = zip(*[[string.joinfields(p, "") for p in zip(*nodes[n])] for n in range(len(nodes))])
result = [string.joinfields(znodes[p], "separator") for p in range(process)]
Отредактировано (Ноя. 29, 2010 16:23:28)
Офлайн
не совсем понятно что нужно на выходе, но сделал как понял:
r = (
("process1result0", "process2result0", "process3result0"),
("process1result5", "process2result7", "process3result9"),
("process1result15", "process2result17", "process3result19"),
("process1result101", "process2result101", "process3result101")
)
print [reduce(lambda x,y:x+'separator'+y[14:],z)[14:] for z in map(None,*r)]
['0separator5separator15separator101', '0separator7separator17separator101', '0separator9separator19separator101']
Офлайн
Нет, я похоже совсем не понятно изложил мысль.
Вообщем, есть:
process = 3
separator = "*"
nodes = []
nodes.append((("prc1-r0", "prc2-r0", "prc3-r0"), ("prc1-r1", "prc2-r1", "prc3-r1"), ("prc1-r2", "prc2-r2", "prc3-r2")))
nodes.append((("prc1-r10", "prc2-r10", "prc3-r10"), ("prc1-r11", "prc2-r11", "prc3-r11")))
nodes.append((("prc1-r20", "prc2-r20", "prc3-r20"), ("prc1-r21", "prc2-r21", "prc3-r21"), ("prc1-r22", "prc2-r22", "prc3-r22")))
('prc1-r0prc1-r1prc1-r2*prc1-r10prc1-r11*prc1-r20prc1-r21prc1-r22', 'prc2-r0prc2-r1prc2-r2*prc2-r10prc2-r11*prc2-r20prc2-r21prc2-r22', 'prc3-r0prc3-r1prc3-r2*prc3-r10prc3-r11*prc3-r20prc3-r21prc3-r22')
Офлайн
while r = getresult():
Отредактировано (Ноя. 30, 2010 02:21:48)
Офлайн
py.user.next=) Блин, это я алгоритмически для представления картины описал.
Код:
while r = getresult():
а это работает ?
Офлайн