진박사의 일상

[Python] ''.join() 얼마나 빠를까? 본문

프로그래밍

[Python] ''.join() 얼마나 빠를까?

진박사. 2021. 9. 4. 12:03

list to string에 사용되는 join 함수가 for-loop보다 얼마나 빠를까 테스트를 해보았다.

 

import time
import random

str_len = 100 #100자리 랜덤 문자열
str_pool = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
result = []

for_sum = 0.0
join_sum = 0.0

for i in range(str_len):
    result.append(random.choice(str_pool))

for i in range(100):
    for i in range(str_len):
        result.append(random.choice(str_pool))
    new_result = ""
    start = time.time()
    #for r in result:
    #    new_result += r
    new_result = 
    for_sum += time.time() - start

    start = time.time()
    new_result = ''.join(result)
    join_sum += time.time() - start

for_sum/=100
join_sum/=100

print("for-loop time :", for_sum)
print("''.join() time :", join_sum)
if for_sum > join_sum:
    print( "''.join() is faster than for-loop by ",round((for_sum-join_sum)/for_sum*100,2), "%")
else:
    print( "for-loop() is faster than ''.join() by ",round((join_sum-for_sum)/join_sum*100,2), "%")

결과적으로

for-loop time : 0.002113642692565918
''.join() time : 4.7826766967773436e-05
''.join() is faster than for-loop by  97.74 %

예상대로 무쟈게 빠르게 나왔다.

함수를 아는것과 모르는 것의 차이가 이렇게 크다.