안녕하세요 마무입니다.
개인적으로 공부하다가 "파이썬 리스트를 더 빠르게 만드는 방법"에는 무엇이 있을까 고민하다 테스트해보고 결과를 써본 글입니다.
말 그대로 개인적으로 정리한 글로, 더 좋은 의견이나 코드 오류가 있으면 지적해주시면 감사하겠습니다!
후에 비교할 다른 리스트 만드는 방법을 더 발견시 추가하겠습니다.
-----목차-----
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 저의 포스트에도 틀린 정보가 있을 수도 있습니다. 그럴 경우 친절한 말투로 근거와 함께 댓글로 달아주시면 정말 감사하겠습니다!