将字符串和列表传递给多处理

时间:2018-11-01 18:55:03

标签: python python-3.x combinations

因此,我尝试将列表和字符串变量发送到我的多处理方法,但字符串被拆分为列表

这是我的程序:

from multiprocessing import Pool
from itertools import product

combs = "1a 1A 2a 2A 3@ 3$".split()

def mword(list, base): 
    tag = base[0:2] + comb +base[4:7]  # Error at this line
    return tag

if __name__ == '__main__':
    print("Enter Sample word")
    base = input()
    p = Pool()
    result = p.starmap(mword, product(combs, str(base)))
    p.close()
    p.join()



> INPUT : QWERTYU  
> Expected Output : 
  QW1aTYU #keep changing 3rd and 4th Character
  QW1ATYU
> OUTPUT : 
  Q1A
  W1A .. so on

我也尝试过:

  

''。join(base)

1 个答案:

答案 0 :(得分:1)

产品需要2个列表。您正在向它传递一个梳子列表和一个字符串,该字符串是字符列表。因此,结果是字符串的每个字符和每个梳子。

要使此按预期方式通过的产品成为一个列表,其中字符串是它唯一不知道将字符串切成单个字符的唯一项。

result = p.starmap(mword, product(combs, [str(base)]))