map은 list를 지정된 함수로 처리해주는 함수이다. 다음과 같은 배열이 있다.

age가 20보다 크면 '성인', 이하면 '청소년'이라는 값을 리턴해서 새로운 배열을 만들려고한다.
먼저 함수를 정의한다.

매개변수로 들어온 person의 age를 3항연산으로 성인, 청소년을 구분해서 리턴해준다.

이제 map을 사용한다. map의 첫번째 인자로는 함수명을 작성하고(함수 괄호는 작성x), 두번째 인자로 배열을 넣어준다. 그러면 people배열의 요소 하나씩 check_adult에 넣어서 실행하고 결과를 리턴해준다.(map은 새로운 배열을 리턴해준다.) 여기서 중요한건 결과를 list() 로 감싸준다.
위 예시 print(list(result)) 이렇게 작성하지않고, list(map(check_adult,people)) 라고해도 좋다.
전체코드는 아래와 같다.

lambda 라는것을 사용하면 더 간단하게 작성할 수 있다. lambda의 기본틀은 아래와 같다.
lambda 매개변수 : 표현식
두 수를 더하는 함수가 있다고 하자.
def sum(x,y):
return x + y
sum(10,20) >>> 30
이것을 람다로 표현한다면
(lambda x,y : x + y)(10,20) >>> 30
위 예제를 람다를 사용해서 다시 작성해보았다.

people의 요소 하나하나를 lambda 함수에 하나 하나씩 person 매개변수에 넣고, 리턴된 결과값을 새로운 배열로 만들어내어 result에 담고있다.
실행결과

마지막으로 filter 기초사용법이다. map보다는 그나마 쉬운편
filter는 여러 개의 데이터로부터 일부의 데이터만 추려낼 때 사용.
기본 형태
filter(조건함수, 순회 가능한 데이터)
두번째 인자로 넘어온 데이터 중에서 첫번째 인자로 넘어온 함수의 조건을 만족하는 데이터만을 반환한다.
filter를 이용해서 age가 20 이상인 데이터만 출력해보았다.

실행결과

참고로 강의에서 lambda함수는 매개변수명을 관습적으로 'x'라고 적는다고한다.
고쳐쓰면 다음과 같다.

| [파이썬] 3항연산 (0) | 2022.02.28 |
|---|---|
| [파이썬] f-string 기초 (0) | 2022.02.28 |
| [파이썬] 딕셔너리 기초 (0) | 2022.02.28 |
| [파이썬 기초] 배열 기초 (0) | 2022.02.28 |
| [파이썬]전체 문자열중 지정한 길이 출력하기 (0) | 2022.02.28 |