① 각 원소에 1 더하기
list(map(lambda x: x + 1, [1, 2, 3]))결과: [2, 3, 4]
리스트의 각 원소가 차례대로
x에 들어갑니다. lambda x: x + 1 이므로 1→2, 2→3, 3→4가 되어 새로운 리스트가 만들어집니다.파이썬 lambda 문법을 기초 → 응용 → 고급 순서로 익힐 수 있도록 정리한 학습용 HTML 자료입니다.
각 문제마다 코드, 실행 결과, 왜 그런 결과가 나오는지를 함께 넣었습니다.
lambda는 이름 없이 한 줄로 만드는 짧은 함수입니다.
list(map(lambda x: x + 1, [1, 2, 3]))x에 들어갑니다. lambda x: x + 1 이므로 1→2, 2→3, 3→4가 되어 새로운 리스트가 만들어집니다.list(filter(lambda x: x % 2 == 0, range(1, 6)))range(1, 6)은 1, 2, 3, 4, 5를 만듭니다. 그중에서 x % 2 == 0이 참인 값만 남기므로 짝수 2와 4만 선택됩니다.(lambda x: x * 2)(5)lambda x: x * 2라는 익명 함수를 만든 뒤, 바로 뒤의 (5)로 즉시 실행합니다. 따라서 5×2=10이 됩니다.list(map(lambda x: x * x, [1, 2, 3]))list(map(lambda a, b: a + b, [1, 2, 3], [4, 5, 6]))list(filter(lambda x: x > 3, [1, 2, 3, 4, 5]))x > 3을 만족하는 원소만 남깁니다. 1, 2, 3은 제거되고 4와 5만 남습니다.list(map(lambda x: str(x), [1, 2, 3]))str(x)는 숫자를 문자열로 바꾸는 함수입니다. 따라서 정수 1, 2, 3이 문자 '1', '2', '3'으로 변환됩니다.list(map(lambda x: x if x % 2 else 0, range(5)))range(5)는 0, 1, 2, 3, 4입니다. 조건식에서 홀수면 자기 자신을, 짝수면 0을 반환하므로 결과가 [0, 1, 0, 3, 0]이 됩니다.list(filter(lambda x: len(x) > 3, ['hi', 'hello', 'hey']))len(x)는 문자열 길이를 구합니다. 'hi'는 2, 'hello'는 5, 'hey'는 3이므로 3보다 큰 'hello'만 남습니다.list(map(lambda x: x[0], ['apple', 'banana', 'cherry']))x[0]은 문자열의 첫 번째 문자를 뜻합니다. 각 단어의 첫 글자만 꺼내므로 a, b, c가 됩니다.list(map(lambda x: x.upper(), ['a', 'b', 'c']))upper()는 문자열을 대문자로 바꿉니다. 따라서 각 원소가 A, B, C로 변환됩니다.list(map(lambda x: x * 3, ['a', 'b']))list(filter(lambda x: x.startswith('a'), ['apple', 'banana', 'avocado']))startswith('a')는 문자열이 a로 시작하는지 확인합니다. apple과 avocado만 조건을 만족합니다.list(map(lambda a, b: a * b, [1, 2, 3], [4, 5, 6]))list(map(lambda x: x[::-1], ['abc', 'def']))x[::-1]은 처음부터 끝까지 거꾸로 가져오는 슬라이싱입니다. 그래서 'abc'는 'cba', 'def'는 'fed'가 됩니다.list(filter(lambda x: x % 3 == 0, range(10)))range(10)은 0부터 9까지입니다. 이 중 3으로 나누어 떨어지는 값만 남기면 0, 3, 6, 9가 됩니다.list(map(lambda x: x[1], [(1, 2), (3, 4), (5, 6)]))list(map(lambda x: x + 1 if x % 2 else x - 1, range(5)))list(map(lambda x: x.split(), ['a b', 'c d']))split()은 공백을 기준으로 문자열을 나눕니다. 따라서 'a b'는 ['a', 'b'], 'c d'는 ['c', 'd']가 됩니다.list(filter(lambda x: sum(x) > 5, [(1, 2), (3, 4), (2, 2)]))sum(x)는 튜플 원소의 합입니다. (1,2)의 합은 3, (3,4)의 합은 7, (2,2)의 합은 4이므로 5보다 큰 (3,4)만 남습니다.lambda 매개변수: 표현식lambda는 보통 짧은 연산이나 간단한 조건 처리에 적합합니다.def로 일반 함수를 만드는 것이 더 읽기 쉽습니다.