Python 심화7 - map,filter함수

do yeon kim·2022년 6월 8일
0

Python(심화)_fastcampus

목록 보기
7/24

map,filter함수

람다함수를 같이 활용해서 사용할 수 있다.

  • map함수 사용방법(+람다함수)
  • filter함수 사용방법(+람다함수)

기존의 순서가 있는 자료형을 수정해서 새로운 순서가 있는 자료형을 만들기 위해 사용한다.


map함수

map(함수, 순서가 있는 자료형) *리스트, 튜플, 딕셔너리 등이 있다.

  • map(int,["1","2","3"])

["1","2","3"] -> int함수 -> (1,2,3)을 가진 mapobject

mapobject는 다시 리스트 형으로 바꾸어주는 것이 사용하기 좋다.

list(map(int,["1","2","3"]))

#리스트 모든 요소 공백 제거

#1.기존 for문 사용
items = [" 안녕 "," 행복 "," 피곤해 "]
for i in items:
    i.strip()
    print(i)

안녕 
행복
피곤해


#2.map을 사용할 경우
def strip_all(x):
	return x.strip()
items = [" 안녕 "," 행복 "," 피곤해 "]

items = list(map(strip_all,items))
print(items)

['안녕', '행복', '피곤해']


#3.map사용 +람다함수
items = [" 안녕 "," 행복 "," 피곤해 "]
items = list(map(lambda a : a.strip(), items ))
print(items)

['안녕', '행복', '피곤해']

#map함수로 items의 요소들이 하나씩 함수 자리로 들어가게된다.
#함수 자리의 lambda함수가 들어온 요소들을 함수처리해서 결과를 반환하고
#마지막으로 결과들로 리스트를 만든다.

filter함수

기존 순서가 있는 자료형에서 조건을 만족하는 요소만 뽑고 싶을경우 사용한다.

filter(함수, 순서가 있는 자료형) *리스트, 튜플, 딕셔너리 등이 있다.

def func(x):
	return x<0

filter(func, [-100,-50,0,1,3])

[-100,-50,0,1,3] -> 각각 함수로 들어가서 결과들을 모은다 => (-100,-50)의 filterobject를 만든다.

filterobject도 사용하기 위해서 list로 바꾸어서 사용하자.

기본함수
fruits = ["apple","banana","grape","mango"]

result =[]
for i in fruits:
    if len(i) > 5:
        result.append(i)
print(result)

["banana"]


filter사용했을 경우
fruits = ["apple","banana","grape","mango"]
def fun(x):
    return len(x) > 5
a = list(filter(fun, fruits))
print(a)

["banana"]


lambda사용할 경우
fruits = ["apple","banana","grape","mango"]
a =list(filter((lambda i : len(i)>5), fruits))
print(a)

["banana]

map(),filter() 함수는 둘다 순회가능한 데이터를 하나씩 가지고와서 조작하는 함수이다.

그리고 결과값으로 각각 mapobject와 filterobject를 반환하므로 list()로 타입변경을 해주어야 한다.

또한 둘다 lambda를 함께 활용하면 더 간편하게 작업할 수 있다.


https://fastcampus.co.kr/dev_online_pyweb

0개의 댓글