Python
list comprehension과 for loop 벤치
우리별3호
2019. 12. 27. 19:23
#
In [1]: import timeit as ti
In [8]: a="""\
...: a1=[x**3 for x in [1,2,3,4,5,6,7,8,9,10]]
...: a1"""
In [9]: b="""\
...: b1=[]
...: for x in [1,2,3,4,5,6,7,8,9,10]:
...: b1.append(x**3)
...: b1"""
In [10]: ti.timeit(a, number=100000)
Out[10]: 0.4964596600000277
In [11]: ti.timeit(b, number=100000)
Out[11]: 0.5405233050000788
결론
즉 큰 차이는 아니지만 동일한 결과를 내는 식이라면 for loop를 사용하는 것보다는 list comprehension을 사용하는 것이 대게 더 빠르다.
간단한 벤치마크는 timeit.timeit 함수를 사용하면 된다.
timeit(a, number=b) 에서 a는 벤치마크를 하려는 문자열이고, b는 이것을 몇번 반복하는지 지정하는 것이다.