Проблема заключается в том результат работы параллельных процессов getresult() получаем в виде:
process = 3
("process1result0", "process2result0", "process3result0")
...
("process1result101", "process2result101", "process3result101")
Такие результаты мы получаем для каждой ветки (node), таким образом данные поступают в виде:
for i in range(len(nodes)):
while r = getresult():
nodes[i].append((r,))
Теперь задача :) получить объединённую строку-результат работы каждого процесса, вставив разделитель (“separator”) после каждого node. Не сочтите за извращение, некий геморрой добавляет, оптимальность кода по скорости и наличие двух разделителей между строками (пустой и “separator”).
Моё решение (разбил для читаемости на две строчки и заменил круглые на квадратные, где это возможно):
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)]
Это будет работать?