python 내장 함수 중 max()라는 함수가 있다.
이 max() 함수를 이용하여 list 를 받아 최대값을 return 해주는 함수를 작성해 보았다.
def max_list(list):
return max(list)
위의 함수를 for loop을 이용하여 다음과 같이 구현해 보았다.
def max_forloop(list):
max = 0
for i in range(len(list)):
if list[i] > max:
max = list[i]
return max
.
두 함수의 성능을 비교해 보자.
같은 리스트를 사용하여 비교하기 위해
매 테스트마다 새로운 리스트를 작성하여
두 함수의 속도를 측정해 보자.
코드는 아래와 같이 작성하였다.
random 함수를 이용하여 10,000,000 개의 정수로 이루어진 list를 만들어서 각각 전달해 주었다.
총 10번씩 반복하며 각각의 실행 시간과 평균 실행 시간을 출력해 주었다.
import time
import random
def make_list(count):
arr = []
for i in range(count):
arr.append(int(random.random()*10000%1000))
return arr
def max_forloop(list):
max = 0
for i in range(len(list)):
if list[i] > max:
max = list[i]
return max
def max_list(list):
return max(list)
time_list_forloop = []
time_list_list = []
for i in range(10):
test_list = make_list(10000000)
time_begin = time.perf_counter()
max_forloop(test_list)
time_end = time.perf_counter()
time_list_forloop.append(time_end - time_begin)
print(f"{i+1}번째 for 실행시간 : {time_end-time_begin}")
time_begin = time.perf_counter()
max_list(test_list)
time_end = time.perf_counter()
time_list_list.append(time_end - time_begin)
print(f"{i+1}번째 max 실행시간 : {time_end-time_begin}")
print(f">>> for 평균 실행시간 : {sum(time_list_forloop)/len(time_list_forloop)}")
print(f">>> max() 평균 실행시간 : {sum(time_list_list)/len(time_list_list)}")
출력 결과는 다음과 같다.
built-in function 의 사용이 속도면에서 유리하다는 점을 배웠다.