@ map() 활용
map(함수, 리스트)
첫번째, map()식이 활용된 보통의 형태 - 리스트의 원소를 조작하기
people = [
{'name': 'bob', 'age': 20},
{'name': 'carry', 'age': 38},
{'name': 'john', 'age': 7},
{'name': 'smith', 'age': 17},
{'name': 'ben', 'age': 27},
{'name': 'bobby', 'age': 57},
{'name': 'red', 'age': 32},
{'name': 'queen', 'age': 25}
]
def check_adult(person):
if person['age'] > 20:
return '성인'
else:
return '청소년'
result = map(check_adult, people)
print(list(result))
# map(함수, 리스트)은 리스트 요소를 하나하나 돌면서 함수를 적용하라.라는 뜻.
# 그 리턴 값을 모아서 마지막에 list로 만들어서 print 했다.
두 번째 형태. if-else 문을 1줄짜리로 줄였다.
https://veams.tistory.com/33 참고
people = [
{'name': 'bob', 'age': 20},
{'name': 'carry', 'age': 38},
{'name': 'john', 'age': 7},
{'name': 'smith', 'age': 17},
{'name': 'ben', 'age': 27},
{'name': 'bobby', 'age': 57},
{'name': 'red', 'age': 32},
{'name': 'queen', 'age': 25}
]
def check_adult(person):
return '성인' if person['age'] > 20 else '청소년'
# 위 4줄 짜리 if-else 문을 조작하여 1줄짜리로 줄임
result = map(check_adult, people)
print(list(result))
@ lambda의 활용.
lambda 매개변수 : 표현식
파이썬의 lambda(람다)는 Lisp 언어의 lambda에서 가져와 발전했다고 한다.
(지나가는 썰로, Y-combinator의 창업자 폴 그레이엄은 그의 에세이에서 매번 Lisp는 가장 효율적이며 강력한 언어라고 예찬했었다.)
형태로 활용한다.
예제를 보자.
def sum(x, y):
return x+y
sum(3,5)
실행결과 ==> 8
lambda는 함수를 한 줄짜리 코드로 만들어준다. 실행결과는 동일하다.
(lambda x,y: x+y)(10,20)
실행결과 ==> 8
그래서 lambda 활용한 세 번째 형태이다.
people = [
{'name': 'bob', 'age': 20},
{'name': 'carry', 'age': 38},
{'name': 'john', 'age': 7},
{'name': 'smith', 'age': 17},
{'name': 'ben', 'age': 27},
{'name': 'bobby', 'age': 57},
{'name': 'red', 'age': 32},
{'name': 'queen', 'age': 25}
]
result = map(lambda x: ('성인' if person['age'] > 20 else '청소년'), people)
# lambda 매개변수 : 표현식
# (map) 리스트people을 돌면서 x에 넣을 것인데.
# (lambda) 그 person을 '성인' if person['age'] > 20 else '청소년'로 return한다.
print(list(result))
실행결과 ==>
['청소년', '성인', '청소년', '청소년', '성인', '성인', '성인', '성인']
@ filter() 활용
filter(적용시킬 함수, 적용시킬 요소들)
- map과 유사하다. Ture인 것들만 뽑는다.
filter를 활용한 네 번째 형태
people = [...]
result = filter(lambda x: x['age'] > 20, people)
# lambda 매개변수 : 표현식
# people을 x의 요소 하나하나에 다 넣고, x['age']값이 20보다 크면 걔네들만 필터링하라.
print(list(result))
실행결과 ==>
[{'name': 'carry', 'age': 38}, {'name': 'ben', 'age': 27}, {'name': 'bobby', 'age': 57}, {'name': 'red', 'age': 32}, {'name': 'queen', 'age': 25}]
'개발기초' 카테고리의 다른 글
알고리즘 : 파이썬 기본 예제, 리스트 안의 최댓값 찾아보기 (0) | 2022.11.22 |
---|---|
알고리즘: 알고리즘의 의미와 필요성(개발자 입문) (0) | 2022.11.22 |
파이썬 기초문법 뽀개기 : 한 줄의 마법, 코드 줄여쓰기 (0) | 2022.11.21 |
파이썬 기초문법 뽀개기 : 파일 불러오기 (0) | 2022.11.21 |
파이썬 기초문법 뽀개기 : f-string, 예외처리 try-except 문 (0) | 2022.11.21 |
댓글