728x90
반응형
이전 포스팅에서 map()에 대해 간략히 포스팅한 적이 있다. map() 뿐만 아니라 Filter() 에 대한 설명도 같이 있으니, 동작원리에 대해 알고 싶다면 아래 링크를 참고하길 바랍니다.
https://ssanggo.tistory.com/63
Quiz 1
map()를 map_func 함수의 이름으로 구현하세요.
리스트의 데이터를 아래의 예제와 같이 더하는 함수를 만드는데 따로 함수를 선언해서 사용하지 말고, map의 첫번째 파라미터에 lambda 함수로 구현하세요.
ls1 = [1, 2, 3, 4]
ls2 = [5, 6, 7]
ls3 = [9, 10, 11, 12]
result = [15, 18, 21]
def map_func(func, *args):
return [func(*datas) for datas in zip(*args)]
print(map_func(lambda *args : sum(args), ls1, ls2, ls3))
# 출력결과
[15, 18, 21]
# 실제 map() 함수의 결과와 비교
print(list(map(lambda *args : sum(args), ls1, ls2, ls3)))
# 출력결과
[15, 18, 21]
Quiz 2
filter()를 filter_func 함수의 이름으로 구현하세요.
filter 함수를 구현하여 1~10까지 숫자에서 홀수만 출력하는 코드를 작성하세요
ls = range(1, 10)
result = [1, 3, 5, 7, 9]
def filter_func(func, datas):
return [data for data in datas if func(data)]
print(filter_func(lambda number: number % 2, ls))
# 출력결과
[1,3,5,7,9]
# 실제 filter 함수와 결과비교
print(list(filter(lambda number: number % 2, ls)))
# 출력결과
[1,3,5,7,9]
Quiz 3
reduce()를 reduce_func 함수의 이름으로 구현하세요
ls = [1,2,3,4,5]
reduce(lambda x, y: x+y, ls)
def reduce_func(func, ls):
result = ls[0]
del ls[0]
for data in ls:
result = func(result, data)
return result
ls = [1,2,3,4,5]
print(reduce_func(lambda x, y: x + y, ls))
# 출력결과
15
# 기존 reduce 함수와 결과 비교
print(reduce(lambda x, y: x + y, ls))
# 출력결과
15
728x90
반응형
'Study > FastCampus' 카테고리의 다른 글
[Numpy] Numpy 행렬값 치환하기 (0) | 2021.06.23 |
---|---|
[Numpy] Numpy 개요 및 행렬 데이터 만들기 (0) | 2021.05.17 |
[python] Decolator - ① (0) | 2021.05.06 |
[python] Map(), Filter(), reduce() (0) | 2021.05.04 |
[python] 함수 default 파라미터 (0) | 2021.05.03 |