0
我有兩個輸入文件:置換文件和打印即使從第二檔線
sentances.txt
This is a sentance with keyword one two three.
This is a sentance with keyword four five.
This is a sentence with keyword six.
keywords.txt
one two three
four five
six
我想要的輸出文件看起來像:
permuated-keywords.txt
one two three
one three two
two one three
two three one
three one two
three two one
four five
five four
six
多sentances.txt
This is a sentance with keyword one two three.
This is a sentance with keyword one two three.
This is a sentance with keyword one two three.
This is a sentance with keyword one two three.
This is a sentance with keyword one two three.
This is a sentance with keyword one two three.
This is a sentance with keyword four five.
This is a sentance with keyword four five.
This is a sentence with keyword six.
此代碼運行沒有錯誤,但沒有把行的正確數目多sentances.txt
from itertools import permutations
import operator
from collections import Counter
from math import factorial
def npermutations(l):
num = factorial(len(l))
mults = Counter(l).values()
den = reduce(operator.mul, (factorial(v) for v in mults), 1)
return num/den
with open('sentances.txt', 'r') as longfile:
with open('multiple-sentances.txt', 'w') as out2:
with open('keywords.txt', 'r') as shortfile:
with open('permuated-keywords.txt', 'w') as out:
for line in shortfile:
perm=('\n'.join(map(' '.join, permutations(line.split()))))
numofperms=npermutations(line.split())
out.write(perm)
out.write('\n')
for line in longfile:
for i in range(numofperms):
out2.write(line)
〜
你的預期結果並不明顯。 –