파이썬 람다(Lambda) & Map 함수 #1

람다(Lambda) 함수

뭔가 거창하고 수학에서 유래된 이름을 갖고 있기 때문에 상당히 어려운 놈일 거라 생각하시는 분들이 있겠지만, 람다(Lambda) 함수는 기존의 함수를 조금 더 간단히 축약된 방식으로 사용하기 위한 (익명)함수입니다. 내용적으로 그렇게 어려운 부분은 없습니다. 단지, 많이 사용하게 됩니다. 특히 판다스를 사용하게 되면, 람다와 Map 함수를 많이 볼 수 있어요. 역시 대단히 깊게 들어갈 내용은 아니고, 특성 파악과 몇 번 사용해보는 정도로 연습하면 되는 부분입니다.

#일반 파이썬 함수
def f(x, y):
    return x * y
print(f(35, 5))

#람다(lambda) 함수 활용
#lamda 매개변수 : 표현식
print((lambda x, y : x * y)(35, 5))

위 두 코드 모두 결과값은 175가 나올 거예요. 한 번 직접 코딩하셔서 확인해보세요. 위 코드에서도 볼 수 있는 것처럼 람다 함수를 활용하게 되면, 코드 한 줄로 단축되는 것을 느낄 수 있습니다. 심지어 함수의 이름도 없이 사용가능해요. 상당히 직관적인 파이써닉 코드죠? 람다 함수의 표현식을 외울 필요는 없어요. 특성만 파악하고 몇 번 함수 만들어서 람다(lambda) 함수로 바꿔보시면 익히실 수 있습니다.

Map 함수

Map 함수 사용법은 ‘map(함수, 리스트)’, 즉 map()은 함수와 리스트를 인자로 받게 됩니다. 풀어서 말씀드리면 리스트의 요소들을 하나씩 뽑아서 정의한 함수에 대입시킨 결과값을 새로운 리스트에 저장해줄 때 사용합니다. 람다와 같이 사용하게 되고, 판다스나 머신러닝에서 정말 많이 사용해요. 어렵나요? 몇 번 연습하면 활용하실 수 있습니다.

# 파이썬3부터는 list()로 반드시 감싸줘야 합니다.
# range(4) -> [0, 1*1*1, 2*2*2, 3*3*3]
print(list(map(lambda x: x ** 3, range(4))))

람다와 Map을 살펴봤는데, 다음 #2에서는 reduce, filter 함수와 같이 사용하는 경우를 살펴보도록 할게요. 우선 오늘은 이런 게 있다는 정도만 알면 될 것 같습니다. 다음 #2에서 연습을 많이 해보도록 하겠습니다.

More from author

Related posts

60코딩 커뮤니티spot_img

Latest posts

MLP를 활용한 로또 예측 프로그램

지난 포스팅에서는 회귀 분석 이론을 바탕으로 랜덤 포레스트라는 모델을 사용해서 로또 예측 프로그램을 만들어봤습니다. 이번 포스팅에서는 MPL(다중 퍼셉트론)을 활용해서 로또 예측 프로그램을 역시 심심풀이로...

회귀 분석을 활용한 로또 예측 프로그램

import pandas as pd import numpy as np from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestRegressor # CSV 파일에서 과거 로또 번호 데이터 로드 (예: lotto_history.csv) # CSV 파일에는...

‘기초~중급 Python 문법’ 정모(2022.03.04)

최근에 기초~중급 수준의 내용으로 정모를 가졌어요. 물론, 저희 60coding은 클래스 모임이 아닌 코딩 공부(주제는 미리 공지) 리뷰와 잡담 위주의 모임을 추구합니다. 60Coding의 최민진 멘토님이...