가장 빠른 방법은 테스트하는 것입니다.
이 코드에서는 라인 값이 아닌 라인 값에 관심이 있다고 가정합니다.
import timeit
def test_comprehension():
input = open('list.txt')
output = open('output.txt','w')
[output.write(x) for x in input if int(x) > 2 and int(x) < 5]
def test_forloop():
input = open('list.txt')
output = open('output.txt','w')
for x in input:
if int(x) > 2 and int(x) < 5:
output.write(x)
if __name__=='__main__':
times = 10000
from timeit import Timer
t = Timer("test_comprehension()", "from __main__ import test_comprehension")
print "Comprehension: %s" % t.timeit(times)
t = Timer("test_forloop()", "from __main__ import test_forloop")
print "For Loop: %s" % t.timeit(times)
이 나는 단지 몇 기능, 지능형리스트와 함께 않는 한, 그리고 forloop로 수행하는 또 다른를 설정하고있다. timeit 모듈은 지정한 횟수만큼 코드의 작은 비트를 실행하고 시간을 계산하여 실행하는 데 걸리는 시간을 반환합니다.위의 코드를 실행하는 경우 그래서 당신의 라인을 따라 뭔가의 출력을 얻을 것이다 :
이해 : 0.957081079483 For 루프 : 0.956691980362
이 음울만큼,이 같은 어느 쪽이든에 관하여이다.
성능이 왜 중요한가요? 이해하기 쉽고 유지 보수가 가능한 코드를 작성하는 방법을 배우는 것이 더 좋지 않습니까? 문제가되는 경우 성능을 걱정하십시오. 가능하다면 –
+10까지 @David. 또한 파일 I/O는 데이터가 메모리에서 어떻게 처리되는지에 관계없이 어쨌든 느립니다. – delnan