【发布时间】:2017-06-27 05:55:16
【问题描述】:
我有两个输入文件:
句子.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
multiple-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.
此代码运行没有错误,但没有在 multiple-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)
~
【问题讨论】:
-
您的预期结果并不明显。
标签: python python-3.x permutation itertools