这是精简代码:
import itertools
def Compare(file1, file2):
with open(file1+'.txt', 'r') as f1, open(file2+'.txt', 'r') as f2:
for line in itertools.product(f1, f2):
print (line),
它将始终打印出存在的总行数中的每一行。 因此,如果特定txt文件中总共有4行,它将打印每行4次,因此结果将是16行,其中12行是重复的。
答案 0 :(得分:2)
答案 1 :(得分:2)
这就是itertools.product
所做的事情 - 将a
中的每个元素与b
中的所有元素配对。如果您希望每个文件中的每一行配对,那么您需要查看itertools.izip
,例如:
from itertools import product, izip
from pprint import pprint
a = ['a_one', 'a_two', 'a_three']
b = ['b_one', 'b_two', 'b_three']
pprint(list(product(a, b)))
[('a_one', 'b_one'),
('a_one', 'b_two'),
('a_one', 'b_three'),
('a_two', 'b_one'),
('a_two', 'b_two'),
('a_two', 'b_three'),
('a_three', 'b_one'),
('a_three', 'b_two'),
('a_three', 'b_three')]
pprint(list(izip(a, b)))
[('a_one', 'b_one'), ('a_two', 'b_two'), ('a_three', 'b_three')]