-
Python | List Comprehension이 왜 더 빠를까?python 2022. 7. 26. 18:00
오늘 강의를 듣다 List Comprehension이 단순 for loop을 실행하는 것보다 더 빠르다는 것에 대해서 알았다.
사진1. google colab List Comp. vs for loop 이걸 보면서 단순 generator의 차이는 아닐 것이라는 생각이 들어 관련 자료를 좀 더 찾아보게 되었다.
김동우님의 블로그 에서 그 답을 확인할 수 있었다. 이곳에도 링크가 있었지만, 404 에러로 해당 블로그의 링크를 첨부한다.
파이썬에서 List Comprehension이 더 빠른 이유
들어가며 보통 언어를 공부하면 쉽게 사용할 수 있도록 만들어진 문법일수록 실행시간에서 손해보는 경우가 많았습니다. 리스트 컴프리헨션도 일종의 언어 수준의 편의기능으로 생각했기에 당
whatisand.github.io
결론적으로, for loop에서는 append 메소드를 call 하고, List Comprehension에서는 LIST_APPEND를 사용한다.
두 방식 모두 append 하는 것은 차이가 없지만, 메소드를 call 하는 데에서 시간 차이가 발생한다고 해당 글에서 결론짓고 있다.
사진2. empty 메소드 vs pass 실제로 emp() 메소드에는
def emp(): pass
밖에 적혀있지 않다. 하지만 위의 김동우님의 글과 같이 시간 차이가 꽤 나는 모습을 볼 수 있다. 심지어 아래의 결과에는
The slowest run took 5.77 times longer than the fastest. This could mean that an intermediate result is being cached.
거의 결과가 바로 나온다고 생각해도 된다고 적혀있다.
블로그의 첫 글이어서 간단히 적어두기만 했는데, 나는 주로 쉽게 알기 힘든 것들에 대해서 적어두고 싶다는 생각이 든다.
앞으로 Python을 사용하면서 또는 배우면서 궁금한 점이 생기거나 새로 안 지식들이 있다면 공유하는 습관을 기르도록 하겠다.
'python' 카테고리의 다른 글
Python | 크롤링 도중 None 객체가 여러번 반환된다면? (1) 2022.12.21 Django | URLConf 에서 lambda의 활용 (0) 2022.12.07 Python | *, **의 의미 (0) 2022.08.02