}

프로필

팔로우 해주시면 포스트할 때 큰 힘이 됩니다!!! 사실 저도 이 팔로우가 무슨 기능이 있는지는 모르겠습니다만, 팔로우 수가 늘면 '날 응원해주는 사람들이 있구나' 생각이 들어서 큰 힘이 됩니다.

2021년 11월 17일 수요일

파이썬 리스트 빠르게 만드는 방법은?

 안녕하세요 마무입니다. 

개인적으로 공부하다가 "파이썬 리스트를 더 빠르게 만드는 방법"에는 무엇이 있을까 고민하다 테스트해보고 결과를 써본 글입니다.

말 그대로 개인적으로 정리한 글로, 더 좋은 의견이나 코드 오류가 있으면 지적해주시면 감사하겠습니다!

후에 비교할 다른 리스트 만드는 방법을 더 발견시 추가하겠습니다.


-----목차-----

1. 파이썬 리스트 append()와 리스트 크기를 정해놓고 쓰는 것 속도차이

2. 결론

--------------




1. 파이썬 리스트 append()와 리스트 크기를 정해놓고 쓰는 것 속도차이


문득 파이썬에서 리스트를 만들 때 

i) 

number = int(input("수를 입력하시오 : "))

list1 = [] 

for i in range(number):

    list1.append(i)

이렇게 빈리스트를 만들고, append로 추가하는 방식

ii) 

number = int(input("수를 입력하시오 : "))

list2 = [None] * number 

for i in range(number):

    list2[i] = i


이렇게 리스트를 None 이용해 크기를 정하고, 후에 인덱스를 이용해 넣는 방식

어떤게 리스트 생성할 때 더 빠른지가 갑자기 궁금해졌는데요

이러한 알고리즘을 적용한 코드를 이용해서 리스트 크기별로 속도 차이를 분석해봤습니다.





사용한 코드는 이렇습니다.  

계산 속도를 측정하기 위해서 time모듈의 time()을 사용했습니다.


i) 리스트 크기가 작을 때 





이렇게 리스트의 크기가 1000정도일 때는 None을 이용해 리스트를 만들어놓고 채워넣는 방법이 더  아~~주 약간 빠른 것을 볼 수 있습니다.

그럼 한번 리스트 크기를 더 키워보겠습니다.


ii) 리스트의 크기가 클 때 




이렇게 리스트의 크기를 100만정도로 하니, None을 이용한 방식이 약 0.1초 더 빠른 걸 볼 수 있었습니다.




2. 결론


i) 속도측면만 본다면 리스트 크기를 정해놓고 값을 채워넣는 방식이, append방식보다 10.5퍼센트 더 빠르다

ii) 하지만 속도차이는 겨우 10%이니, 확실하게 리스트 크기를 정해놓아도 되는 상황이 된다면 append 대신 쓰면 좋을 것 같다.

 





댓글 없음:

댓글 쓰기

#1 여러분들이 소중한 시간을 투자해 달아주시는 따뜻한 댓글들은 저에게 정말 큰 힘이 됩니다!

#2 저의 각 포스트들은 엄청난 노력과 시간 투자를 통해 만들어진 포스트들로, 무단 복제나 모방하는 것을 금지합니다.

#3 저의 포스트에도 틀린 정보가 있을 수도 있습니다. 그럴 경우 친절한 말투로 근거와 함께 댓글로 달아주시면 정말 감사하겠습니다!