python

[Python] Map함수, Filter함수

딸기케잌🍓 2021. 10. 2. 00:15

map

map 함수의 원형은 다음과 같습니다.

map(function, iterable)

function : iterable에 대해 수행할 함수

iterable : 반복 가능한 자료형

 

map 함수는 iterable의 각 원소에 대해 function을 수행하는 함수입니다.

첫 번째 인자 function에는 람다함수도 쓸 수 있습니다.

map 함수의 반환 값은 map 객체이기 때문에 list 또는 tuple로 형 변환시켜주어야 합니다.

 

 

map함수 예제

list(map(int,[1.1, 2.0, 3.3, 4.5]))

결과
[1, 2, 3, 4]

 

 

map + 람다 함수 예제

map의 첫번째 인자로 람다함수를 쓰는 예제입니다.

list(map(lambda x: x * 10, [1,2,3,4,5])))

결과
[10, 20, 30, 40, 50]
def calc(number, target):
    return number * target

print(list(map(lambda x: calc(100, x), [1, 2, 3, 4, 5])))

결과
[100, 200, 300, 400, 500]

 

 

 

 

 

filter

filter함수는 map 함수와 원형이 동일합니다.

filter(function, iterable)

function : iterable에 대해 수행할 함수

iterable : 반복 가능한 자료형

 

사용방법은 map함수와 동일하나 filter의 첫번째 매개변수 함수의 결과가 참, 거짓인지에 따라 iterable의 해당 원소를 포함할지를 결정합니다.

 

 

filter 함수 예제

def is_even(n):
    return True if n % 2 == 0 else False

target = [1, 2, 3, 4, 5]
print(list(filter(is_even, target)))
    
결과
[2, 4]

filter함수도 첫번째 매개변수 function에 람다 함수를 사용할 수 있습니다.

 

 

이처럼 map과 filter함수는 for문을 사용하지 않고 iterable의 모든 원소에 대해서 특정 함수를 반복적으로 수행하고 원하는 결과를 리턴받을 때 유용합니다.

'python' 카테고리의 다른 글

[Python] 순열, 조합  (0) 2021.04.06
[Python] zip 함수  (0) 2021.04.01
[Python] 오름차순 정렬, 내림차순 정렬  (0) 2021.03.28
join과 split  (0) 2020.06.29
[Python] enumerate  (0) 2020.06.29