안녕하세요? 뜻밖의 행운 입니다.
패스트 캠퍼스 도전 31일차
돈의 힘으로 꾸준히 듣고 있습니다.
그래도 이제 듣는 시간도 늘리고 매일 습관화 하면
저에게 큰 자산이 될 듯 싶네요
이렇게 운동도 열심히하고 다른 공부도 계속 해간다면
더 나은 삶을 살 수 있겠죠
오늘은 함수 중급의 마지막
map, filter 함수에 대해서 배웠습니다.
map 함수
기존에 있는 리스트를 수정하여 새로운 리스트를 만들고자 할 때 사용합니다.
이것은 for 문이나 직접 함수를 정의해서도 가능하나
이미 있는 map 함수를 사용하여 한다면 역시 코드를 간결하게 할 수 있어 사용합니다.
사용방법
map(함수, 순서가 있는 자료형) 형식으로 사용하면 됩니다.
예를들면
print(list(map(int, ['1', '2', '3', '4'])))
네 1,2,3,4 가 저장된 리스트 안에 있는 데이터를 정수형으로 바꾸는 것인데요
기존에 함수를 이용한다면 함수를 정의하고 호출하면서 여러줄로 표현해야 할 것을
한 줄로 가능합니다.
이중 pirnt는 기능을 확인하기 위함이니 빼도 됩니다.
# 리스트의 모든 요소의 공백 제거
items = [' 좌우여유롭다. ', ' 위아래는 ']
#1 for 문으로 구현
for i in range(len(items)):
items[i] = items[i].strip()
print(items)
# 2 map 을 이용하여 구현
def strip_all(x):
return x.strip()
items = list(map(strip_all, items))
print(items)
# 3 map과 람다의 콜라보
items = list(map(lambda x : x.strip(), items))
print(items)
map 과 람다를 함께 사용하면 저렇게 더 간결하게 구현이 가능합니다.
잘 동작 하는게 보입니다.
filter 함수
이름 값 하는 함수로 기존에 있는 리스트에서 특정 조건을 만족하는 데이터만 뽑아야 할 때
사용합니다. 역시 별도의 함수를 정의하거나 해서 가능하지만
바퀴를 새로 발명하지 말아라 네!
우리는 있는 것을 그저 가져다 사용하면 됩니다.
map 함수랑 사용하는 방법도 거의 똑같습니다.
filter(함수, 순서가 있는 자료형) 형식으로 사용하면 됩니다.
# 리스트에서 길이가 3 이하인 문자들만 추출하고자 할 때
animals = ['cat', 'tiger', 'dog', 'bird', 'monkey']
# 1 for 를 사용하여 구현
result = []
for i in animals:
if len(i) <= 3:
result.append(i)
print(result)
# 2 filter 를 사용하여 구현
def word_check(x):
return len(x) <= 3
result = list(filter(word_check, animals))
print(result)
# filter와 람다를 활용하여 구현
result = list(filter(lambda x : len(x) <= 3, animals))
역시 map과 filter를 함께 사용한다면 더욱 간략하게 구현이 가능합니다.
네 정말 잘 구현되는게 보입니다.
'IT > 프로그래밍' 카테고리의 다른 글
[파이썬] 파이썬 클래스 최종 [패스트 캠퍼스 챌린지 36일] (0) | 2022.02.28 |
---|---|
[파이썬] 파이썬 클래스 상속 [패스트 캠퍼스 챌린지 35일] (0) | 2022.02.27 |
[파이썬] 파이썬 클래스의 속성 [패스트 캠퍼스 챌린지 34일] (0) | 2022.02.26 |
[파이썬] 파이썬 클래스의 속성 [패스트 캠퍼스 챌린지 33일] (0) | 2022.02.25 |
[파이썬] 파이썬 클래스와 객체 [패스트 캠퍼스 챌린지 32일] (0) | 2022.02.24 |
[파이썬] 파이썬 람다함수 [패스트 캠퍼스 챌린지 30일] (0) | 2022.02.22 |
[파이썬] 파이썬 매개변수 2번째 [패스트 캠퍼스 챌린지 29일] (0) | 2022.02.21 |
[파이썬] 파이썬 매개변수 [패스트 캠퍼스 챌린지 28일] (0) | 2022.02.20 |
[파이썬] 파이썬 심화 문자열 다루기 연습문제 [패스트 캠퍼스 챌린지 27일] (0) | 2022.02.19 |
[파이썬] 파이썬 심화 할당과 복사 [패스트 캠퍼스 챌린지 26일] (0) | 2022.02.18 |