본문 바로가기
Studying/Python

[Python] 내장함수 sum 구현

by giem 2022. 5. 19.
반응형

이번에는 sum을 구현하려고 한다.

 

머신러닝 분야나 선형대수학 등등 많은 수학 분야에서 쓰이는 내장함수이다.

 

사용법을 먼저 보면

 

iterable과 start값(옵션, 기본값=0)을 넘겨주고

iterable을 start값부터 차례대로 돌면서 더하고 다 더한 값을 return 한다.

 

예시를 보자

test = [7, 4, 2, 6, 8]

print(sum(test))
#27
print(sum(test,1))
#20

 

이제 로직은 매우 쉽다.

 

항상 하듯이 iterable을 순환하며 값을 더하고 그 값을 반환하면 된다.

 

그럼 구현해보자

 

def my_sum(iterable, start=0):
    res=start
    for i in iterable:
      res+=i
    return res

 

기존에 filter와 map등을 구현하며 많이 적응 되어 코드 이해는 쉬울 것이다.

 

그럼 테스트 해보겠다.

 

assert sum(test) == my_sum(test)
assert sum(range(10)) == my_sum(my_range(10))
assert sum(filter(lambda x: x % 2, range(1, 20, 3))) \
    == my_sum(my_filter(lambda x: x % 2, my_range(1, 20, 3)))

 

쉬워서 테스트를 여러가지로 해봤는데

여기서 3번째 줄의 \(역슬래시)를 쓰면 다음 줄에 이어서 작성이 가능하다.

 

실행해보면 구현이 잘 된 것을 확인 할 수 있다.

반응형

댓글