python 내장 함수 중 max()라는 함수가 있다.

https://docs.python.org/3/library/functions.html#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 의 사용이 속도면에서 유리하다는 점을 배웠다. 

+ Recent posts