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는 이것을 몇번 반복하는지 지정하는 것이다.