回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在制作一个拼字生成器,由于我缺乏编码技巧,效率极低。在这个程序中,用户输入一系列字母,程序使用蛮力查找每个有效的拼字。为了加快这个过程,我想实现多处理,但无法使其成功工作。工作的非多重处理代码如下所示</p>
<pre><code>from multiprocessing import Process
usrList = input("type the letters you have ")
usrList = list(usrList.upper())
usrList.sort()
print(usrList)
storedList = []
def word2 (usrList):
print('trying to find two letter words')
for i in range(0,len(usrList)):
for j in range(0,len(usrList)):
if i != j:
if str(usrList[i])+str(usrList[j]) not in storedList and str(usrList[i])+str(usrList[j])+'\n' in dicList:
print(str(usrList[i])+str(usrList[j]))
storedList.append(str(usrList[i])+str(usrList[j]))
def word3(usrList):
print('trying to find three leter words')
if len(usrList) > 2:
for i in range(0,len(usrList)):
for j in range(0,len(usrList)):
for k in range(0,len(usrList)):
if i != j and i != k and j != k:
if str(usrList[i])+str(usrList[j])+str(usrList[k]) not in storedList and str(usrList[i])+str(usrList[j])+str(usrList[k])+'\n' in dicList :
print(str(usrList[i])+str(usrList[j])+str(usrList[k]))
storedList.append(str(usrList[i])+str(usrList[j])+str(usrList[k]))
def word4(usrList):
print('trying to find four letter words')
if len(usrList) > 3:
for i in range(0,len(usrList)):
for j in range(0,len(usrList)):
for k in range(0,len(usrList)):
for l in range(0,len(usrList)):
if i !=j and i != k and i!= l and j!= k and j!= l and k != l:
if str(usrList[i])+str(usrList[j])+str(usrList[k])+str(usrList[l]) not in storedList and str(usrList[i])+str(usrList[j])+str(usrList[k])+str(usrList[l])+'\n' in dicList:
print(str(usrList[i])+str(usrList[j])+str(usrList[k])+str(usrList[l]))
storedList.append(str(usrList[i])+str(usrList[j])+str(usrList[k])+str(usrList[l]))
def word5(usrList):
print('trying to find five letter words')
if len(usrList) > 4:
for i in range(0,len(usrList)):
for j in range(0,len(usrList)):
for k in range(0,len(usrList)):
for l in range(0,len(usrList)):
for m in range(0,len(usrList)):
if i !=j and i != k and i!= l and i != m and j!= k and j!= l and j!= m and k != l and k != m and l !=m:
if str(usrList[i])+str(usrList[j])+str(usrList[k])+str(usrList[l])+str(usrList[m]) not in storedList and str(usrList[i])+str(usrList[j])+str(usrList[k])+str(usrList[l])+str(usrList[m])+'\n' in dicList:
print(str(usrList[i])+str(usrList[j])+str(usrList[k])+str(usrList[l])+str(usrList[m]))
storedList.append(str(usrList[i])+str(usrList[j])+str(usrList[k])+str(usrList[l])+str(usrList[m]))
def word6(usrList):
print('trying to find six letter words')
if len(usrList) > 5:
for i in range(0,len(usrList)):
for j in range(0,len(usrList)):
for k in range(0,len(usrList)):
for l in range(0,len(usrList)):
for m in range(0,len(usrList)):
for n in range(0,len(usrList)):
if i !=j and i != k and i!= l and i != m and i != n and j!= k and j!= l and j!= m and j !=n and k != l and k != m and k != n and l !=m and l != n and m!= n:
if str(usrList[i])+str(usrList[j])+str(usrList[k])+str(usrList[l])+str(usrList[m])+str(usrList[n]) not in storedList and str(usrList[i])+str(usrList[j])+str(usrList[k])+str(usrList[l])+str(usrList[m])+str(usrList[n])+'\n' in dicList:
print(str(usrList[i])+str(usrList[j])+str(usrList[k])+str(usrList[l])+str(usrList[m])+str(usrList[n]))
storedList.append(str(usrList[i])+str(usrList[j])+str(usrList[k])+str(usrList[l])+str(usrList[m])+str(usrList[n]))
def word7(usrList):
print('trying to find seven letter words')
if len(usrList) > 6:
for i in range(0,len(usrList)):
for j in range(0,len(usrList)):
for k in range(0,len(usrList)):
for l in range(0,len(usrList)):
for m in range(0,len(usrList)):
for n in range(0,len(usrList)):
for o in range(0,len(usrList)):
if i !=j and i != k and i!= l and i != m and i != n and i != 0 and j!= k and j!= l and j!= m and j !=n and j != o and k != l and k != m and k != n and k!= o and l !=m and l != n and l != 0 and m!= n and m != o and n != o:
if str(usrList[i])+str(usrList[j])+str(usrList[k])+str(usrList[l])+str(usrList[m])+str(usrList[n])+str(usrList[o]) not in storedList and str(usrList[i])+str(usrList[j])+str(usrList[k])+str(usrList[l])+str(usrList[m])+str(usrList[n])+str(usrList[o])+'\n' in dicList :
print(str(usrList[i])+str(usrList[j])+str(usrList[k])+str(usrList[l])+str(usrList[m])+str(usrList[n])+str(usrList[o]))
storedList.append(str(usrList[i])+str(usrList[j])+str(usrList[k])+str(usrList[l])+str(usrList[m])+str(usrList[n])+str(usrList[o]))
f = 'ScrabbleDic.txt'
with open(f,'r') as file:
dicList=[]
for line in file:
dicList.append(line)
file.close()
if __name__ == '__main__':
word7(usrList)
word6(usrList)
word5(usrList)
word4(usrList)
word3(usrList)
word2(usrList)
</code></pre>