코드스테이츠(컴퓨터 공학 기본)(Computer Science) Session 5 / Sprint 1(람다(lambda))

람다를 활용하는 목적

람다라는 단어의 기본컨셉을 이해해보자

람다 대수

함수는 컴퓨터 과학과 수학의 기초를 이루는 개념이다.

람다 대수는 함수를 단순하게 표현할 수 있도록 하여 '함수의 계산'이라는 개념을 더 깊이 이해할 수 있게 돕는다.

람다는 인라인으로 작성할 수 있기 때문에 전체 함수보다 읽기 쉽다. 따라서 함수 표현식의 규모가 작을 때 람다를 사용하는 것이 좋다.

람다 함수의 장점은 함수 객체를 반환한다. 따라서 함수 객체를 인수로 필요로하는 map 또는 filter와 같은 함수와 함께 사용할 때 유용하다

# 함수정의
define_word = (lambda word1,define :  word1 * define)

# 함수호출
result = define_word('call_result_',5)

# 결과출력
print(result) 

# call_result_call_result_call_result_call_result_call_result_
# 리스트 생성
spelling = ["test1", "test2", "test4 test5", "test3"]

# 람다함수적용
shout_spells = map(lambda item: item + ('!!!'), spelling)

# 리스트형태로 변환
shout_spells_list = list(shout_spells)

# 결과출력
print(shout_spells_list) # TypeError: 'list' object is not callable
# 리스트 생성
fellowship = ['frodo', 'samwise', 'merry', 'pippin', 'aragorn', 'boromir', 'legolas', 'gimli', 'gandalf']

# 람다함수적용
result = filter(lambda member: len(member) > 6, fellowship)

# 리스트형태로 변환
result_list = list(result)

# 결과출력
print(result_list) # TypeError: 'list' object is not callable
# functools 모듈 사용
from functools import reduce

# 리스트 생성
stark = ['robb', 'sansa', 'arya', 'brandon', 'rickon']

# 람다함수적용
result = reduce(lambda item1, item2:  item1+item2, stark)

# 결과출력
print(result) # robbsansaaryabrandonrickon

좋은 웹페이지 즐겨찾기