从file1 x file2生成每个单词的笛卡尔积

时间:2015-03-10 14:49:05

标签: python cartesian-product

我搜索了很多网站和论坛,但我无法让它发挥作用。我使用read(),readline()结合所有类型的解决方案。我尝试了while和for循环,仍然无法搞清楚。 这是任务。我有2个txt扩展名的文件。因此file1为list1.txt,文件2为list2.txt

list1.txt有

dog
flower
person

list2.txt有

123
456

接下来我想要的是什么。新文件list3.txt:

dog123
dog456
flower123
flower456
person123
person456

但是我不能使用itertool因为我无法合并2个文件。多数民众赞成禁止。 Any1可以帮助找到解决方案或提供一些建议。

2 个答案:

答案 0 :(得分:0)

查看Docs on Input and Output:

with open('list1.txt', 'r') as l1, open('list2.txt', 'r') as l2, open('list3.txt', 'w') as l3:
    for i, l in enumerate(l1):
        x = l1.readline()
        for j, k in enumerate(l2):
            l3.write('%s%s' % (x, l2.readline()))

答案 1 :(得分:0)

这有效:

with open('list1.txt', 'r') as l1, open('list2.txt', 'r') as l2, open('list3.txt', 'w') as l3:
    for left_part in l1:
        for right_part in l2:
            l3.write('%s%s\n' % (left_part.replace("\n",""), right_part.replace("\n","")))
        l2.seek(0)