2012-10-13 69 views
3

如果你們可以幫助我處理這個查詢,我將不勝感激。使用for循環獲取兩個列表的輸出

在我的python代碼中,我使用open(file,r)函數打開了兩個文件。

現在我想要的是,讀取這兩個文件的所有行,並比較這些數據中的兩列(如果它們匹配)。

我已經嘗試過的文件嵌套for循環的每一行

for line in file: 
    for lines in file: 
    file1 = split(line) 
    file2 = split(lines) 
    process matching query 

但是,它似乎並不奏效。 你們能否指出我如何實現這個目標?

感謝

回答

4

迭代通過這些文件與zip同時:

for line1,line2 in zip(file1,file2): 

,並盡一切與線的邏輯。

對於Python 3.x zip是一個迭代器,在Python 2.x中,您可以使用具有相同功能的izip。在Python 2.x中使用zip。將導致將所有文件內容讀入內存,而迭代器版本將逐行前進。

+0

嗨ovgolovin,感謝您的迅速答覆。我始終認爲,使用zip,列表內容必須是相同的長度。我擁有的兩個列表的長度並不相同,實際上,除了共享相同數據的一列(因此匹配)之外,它們包含不同的數據。 – user1743872

+0

@ user1743872在'for'循環裏面分割每一行,提取需要的列並進行比較。 'zip(file1,file2)'只允許同時前進文件的行。 – ovgolovin

+0

你好ovgolovin,你的意思是在我的第一篇文章中的for循環或你發佈的for循環。在此先感謝 – user1743872