2014-03-31 433 views
0

用于线在file2.splitlines(): 用于升在file1.splitlines(): 如果线路在升: 打印升for循环和嵌套for循环

+4

什么是你到底想干什么?打印每个文件的行? – dursk

+2

请举例:你得到了什么?你想要什么?谢谢 – sshashank124

+0

你能用英文写出你想要的输出是什么吗? – dursk

回答

1

创建字典出在第二行的文件将是一个更快的解决方案,它将摆脱重复的太多:

from collections import defaultdict 

second_file = open('second.txt') 
second_file_dict = defaultdict(int) 
first_file_dict = defaultdict(int) 

for line in second_file: 
    second_file_dict[line.strip()] += 1 
second_file.close() 

first_file = open('first.txt') 
for line in first_file: 
    if line in second_file_dict and not in first_file_dict: 
     print line 
    first_file_dict[line.strip()] += 1   
first_file.close() 
1
print list(set(file2.splitlines()) & set(file1.splitlines())) 
+0

'splitlines()'返回一个列表,'&'操作符不用于名单。你的意思是把这些转换成集合? –

+0

@ F.J:是的,我当时做过,但我忘了赶时间:)这就是为什么我把整个表达式转换成'list',如果我没有想到集合,这将是没有意义的。 – bosnjak