1. filter() 와 lambda, map()
a) filter() 와 lambda
- filter() 함수는 특정 조건에 걸러진 요소들을 iterator 객체로 만들어 반환한다.
- 즉, list, set, tuple에 담아야 사용 및 출력할 수 있다는 것이다.
- 여기서 특정 조건은 적용시킬 함수를 의미한다. 그래서 lambda를 많이 사용한다.
- lambda는 다음과 같은 형태로 구성된다.
lambda 인자 : 표현식
- 만약 a, b 두 수의 합을 반환하는 함수를 작성한다면 다음과 같이 작성할 수 있다.
def plus(a, b):
return a + b
plus(10, 10) # 20을 반환한다.
- 이를 람다로는 다음과 같이 작성할 수 있다.
result = (lambda a, b : a + b)(10, 10)
print(result) # 20을 반환한다.
b) filter()와 lambda 연습하기
- 이제 filter()와 lambda를 이용하여 한가지 문제를 풀어보자.
- 어떤 리스트 a 에는 1~8 까지의 요소가 담겨있다. a = [1,2,3,4,5,6,7,8]
- 이 요소들 중 2로 나누어 지는 수만을 출력해라.
a = [1,2,3,4,5,6,7,8]
for data in a:
a = filter(lambda x : x % 2 == 0, a)
print(list(a)) # [2,4,6,8]이 출력된다.
c) map()
- map()은 filter와 동일한 구조를 가지고 있으나, 기능이 다르다.
- map()은 모든 iterator 요소에 어떤 함수를 적용하는 기능을 가진다.
- map()은 filter와 동일하게 iterator 객체를 반환한다.
- 즉, list, set, tuple 형태로 받아서 사용 및 출력이 가능하다.
- 다음과 같은 문자를 담고있는 문자열을 모두 아스키코드로 바꾸고 싶다면 어떻게 할까?
list_a = ["A", "B", "C"]
- map을 사용하여 다음과 같이 작성할 수 있다.
a = ["A", "B", "C"]
a = list(map(ord, a))
print(a) # [65, 66, 7]을 반환한다.
'Algorithm > 알고리즘 공부노트' 카테고리의 다른 글
2. Array(배열) - Bubble Sort(버블정렬) (0) | 2021.08.21 |
---|---|
1. Array(배열) - 기본 개념 (0) | 2021.08.20 |
시간복잡도 완전정복(1) (0) | 2021.08.04 |
파이썬 배열 - 개념 및 메소드 정리 (8) | 2021.07.30 |
입출력과 사칙연산 메소드 정리 (0) | 2021.07.26 |
댓글