2012-10-13 1 views
3

여러분이이 쿼리를 도와 줄 수 있다면 크게 감사하겠습니다.for 루프를 사용하여 두 목록의 출력을 얻는 것

내 파이썬 코드에서 open (file, r) 함수를 사용하여 두 개의 파일을 열었습니다.

내가 원하는 것은이 두 파일의 모든 행을 읽고 일치하는 경우 해당 데이터의 두 열을 비교하는 것입니다.

나는 그것이 작동하지 않는 것,

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

그러나 파일의 각 라인 루프 중첩을 시도했습니다. 여러분은 저에게 올바른 방향으로 저를 어떻게 안내 할 수 있습니까?

감사 동시에 zip와 해당 파일을 통해

답변

4

으로 반복을 :

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

그리고 라인의 모든 로직을한다.

파이썬 3.x의 경우 zip은 반복기이며 파이썬 2.x에서는 동일한 기능을 가진 izip을 사용할 수 있습니다. Python 2.x에서 zip 사용하기. 모든 파일 내용을 메모리로 읽어 들이고 반복자 버전은 줄 단위로 진행됩니다.

+0

안녕하세요 ovgolovin, 빠른 답장을 보내 주셔서 감사합니다. 필자는 항상 zip을 사용하면 목록 내용의 길이가 같아야한다고 생각했습니다. 내가 가지고있는 두 목록은 같은 길이가 아닙니다. 실제로 한 데이터 열과 다른 데이터를 포함하기 때문에 같은 데이터를 공유합니다 (따라서 일치 함). – user1743872

+0

@ user1743872'for' 루프 안에서 각 줄을 분리하고 필요한 열을 추출하여 비교하십시오. 'zip (file1, file2)'는 오직 파일의 라인을 동시에 진행할 수 있습니다. – ovgolovin

+0

안녕하세요 ovgolovin, 내 첫 게시물이나 for 루프에 대한 for 루프를 의미합니까? 미리 감사드립니다 – user1743872

관련 문제