프로그래밍
[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 %
예상대로 무쟈게 빠르게 나왔다.
함수를 아는것과 모르는 것의 차이가 이렇게 크다.