데이터분석 study/Python

TIL(Today I Learned) 24.07.02

justdata 2024. 7. 2. 20:30

● map, filter,lambda식

  • 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}
]

 

 - 1차 조작

def check_adult(person):
    if person['age'] > 20:
        return '성인'
    else:
        return '청소년'

result = map(check_adult, people)
print(list(result))

 

 - 2차 

def check_adult(person):
    return '성인' if person['age'] > 20 else '청소년'

result = map(check_adult, people)
print(list(result))

 

-3차

result = map(lambda x: ('성인' if x['age'] > 20 else '청소년'), people)
print(list(result))

 

출력값은 모두 동일하게,

 

  • filter - map과 아주 유사한데, True인 것들만 뽑는다.
result = filter(lambda x: x['age'] > 20, people)
print(list(result))