반응형
이번에는 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번째 줄의 \(역슬래시)를 쓰면 다음 줄에 이어서 작성이 가능하다.
실행해보면 구현이 잘 된 것을 확인 할 수 있다.
반응형
'Studying > Python' 카테고리의 다른 글
[Python] Closure 설명, 사용 방법 및 예제 (0) | 2022.05.31 |
---|---|
[Python] 내장함수 sorted 구현 (0) | 2022.05.24 |
[Python] 내장함수 map 구현 (0) | 2022.05.19 |
[Python] 내장함수 filter 구현 (0) | 2022.05.18 |
[Python] 내장함수 reversed 구현 (0) | 2022.05.18 |
댓글