이 코드를 어떻게 최적화 할 수 있습니까? 파일에서 중복 된 선을 제거하고 싶지만 비효율적 인 경우 집합을 사용한다고 생각하고 파싱 할 수있는 파일의 크기를 제한합니다. 임시 파일에대용량 파일에서 중복 줄 제거 최적화
file = open("sample.txt")
output = []
alreadyseen = set()
while True:
lines = file.readlines(100000)
if not lines:
break
for line in lines:
pass # do something
if line not in alreadyseen:
output.append(line)
alreadyseen.add(line)
print(output)
파일이 얼마나 큰 : 두 가지 접근 방식을 결합
는 다음과 같이 보이는? 이진 검색 트리 (Log N 조회를 제공합니다)는 어떻습니까? 또는 줄을 정렬하면 이전 줄만 반복하고 기억할 수 있습니다 ...? – erewok
메모리에 모두 맞을 경우 여기에있는 기술이 아마도 최적 일 것입니다. 적합하지 않더라도 작동하는 방법에 관심이 있다면 그렇게 말하십시오. –
루프 밖에서'print (output) '을 사용하지 않겠습니까? – Eric