개발 => 복습 후 재정리 대기/Python

[Python][문법] map, lambda, filter

장 상 현 2021. 5. 6.

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)) # ['청소년', '성인', '청소년', '청소년', '성인', '성인', '성인', '성인']
# 또는
result2 = list(map(check_adult, people))
print(result2) # ['청소년', '성인', '청소년', '청소년', '성인', '성인', '성인', '성인']

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

result3 = list(map(check_adult, people))

print(result3) # ['청소년', '성인', '청소년', '청소년', '성인', '성인', '성인', '성인']

result4 = map(lambda person : ('성인' if person['age'] > 20 else '청소년'), people)# 한줄짜리 함수를 굳이 뭘 함수를 만들어? lambda를 써

print(list(result4)) # ['청소년', '성인', '청소년', '청소년', '성인', '성인', '성인', '성인']

result5 = filter(lambda person : person['age'] > 20, people)

print(list(result5)) # [{'name': 'carry', 'age': 38}, {'name': 'ben', 'age': 27}, {'name': 'bobby', 'age': 57}, {'name': 'red', 'age': 32}, {'name': 'queen', 'age': 25}]

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)) # ['청소년', '성인', '청소년', '청소년', '성인', '성인', '성인', '성인']
# 또는
result2 = list(map(check_adult, people))
print(result2) # ['청소년', '성인', '청소년', '청소년', '성인', '성인', '성인', '성인']

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

result3 = list(map(check_adult, people))

print(result3) # ['청소년', '성인', '청소년', '청소년', '성인', '성인', '성인', '성인']

result4 = map(lambda person : ('성인' if person['age'] > 20 else '청소년'), people)# 한줄짜리 함수를 굳이 뭘 함수를 만들어? lambda를 써

print(list(result4)) # ['청소년', '성인', '청소년', '청소년', '성인', '성인', '성인', '성인']

result5 = filter(lambda person : person['age'] > 20, people)

print(list(result5)) # [{'name': 'carry', 'age': 38}, {'name': 'ben', 'age': 27}, {'name': 'bobby', 'age': 57}, {'name': 'red', 'age': 32}, {'name': 'queen', 'age': 25}]

댓글