[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-10. 람다

2025. 3. 13. 12:26·Python

📌 Python 함수 심화 – Chapter 6-10. 람다


✅ 1. 람다란?

  • 람다(lambda) 함수는 이름이 없는 익명 함수.
  • 주로 일회성으로 사용할 함수에 활용되며, 코드를 간결하게 작성할 수 있음.
  • 기본 구조
lambda 매개변수: 반환값

📌 함수 매개변수로 전달하는 예시

def oz_call(function):
    for i in range(5):
        function()

def talk():
    print("파이썬 이건 또 무슨 개념이야?")

oz_call(talk)
  • 출력 결과
파이썬 이건 또 무슨 개념이야?
파이썬 이건 또 무슨 개념이야?
파이썬 이건 또 무슨 개념이야?
파이썬 이건 또 무슨 개념이야?
파이썬 이건 또 무슨 개념이야?

✅ 2. 함수를 매개변수로 사용하는 내장함수

📌 map() 함수 예시

def square(i):
    return i * i

numbers_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
result = map(square, numbers_list)

print("map 결과:", result)
print("map 결과의 list 형변환:", list(result))
  • 출력 결과
map 결과: <map object at 0x107536500>
map 결과의 list 형변환: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

📌 filter() 함수 예시

def under(i):
    return i < 5

numbers_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
result = filter(under, numbers_list)

print("filter 결과:", result)
print("filter 결과의 list 형변환:", list(result))
  • 출력 결과
filter 결과: <filter object at 0x1075afeb0>
filter 결과의 list 형변환: [1, 2, 3, 4]

✅ 3. 람다 함수 활용

📌 기존 함수 → 람다 함수로 변환

# 제곱 함수 lambda로 작성
square = lambda i: i * i
result = map(square, numbers_list)
print("map 결과의 list 형변환:", list(result))
  • 출력 결과
map 결과의 list 형변환: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

📌 조건 함수 → 람다 함수로 변환

under = lambda i: i < 5
result = filter(under, numbers_list)
print("filter 결과의 list 형변환:", list(result))
  • 출력 결과
filter 결과의 list 형변환: [1, 2, 3, 4]

📌 즉석에서 사용하는 람다 함수

result = map(lambda i: i * i, numbers_list)
print("map 결과의 list 형변환:", list(result))
  • 출력 결과
map 결과의 list 형변환: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
result = filter(lambda i: i < 5, numbers_list)
print("filter 결과의 list 형변환:", list(result))
  • 출력 결과
filter 결과의 list 형변환: [1, 2, 3, 4]

✅ 4. 람다 함수의 장점

  1. 간결한 코드 작성
    • 복잡하지 않은 단일 연산을 깔끔하게 처리.
  2. 익명 함수
    • 함수 이름 없이 즉석에서 사용 가능.
  3. 함수형 프로그래밍
    • map(), filter() 같은 내장 함수에서 콜백 함수로 편리하게 사용 가능.
  4. 가독성 향상
    • 코드의 의도가 명확해짐.

✅ 이해도 체크리스트

  1. map()과 filter() 함수의 기능은?
    • map(): 각 요소에 함수를 적용해 새로운 시퀀스를 생성.
    • filter(): 각 요소에 함수를 적용해 True인 값만 반환하여 새로운 시퀀스를 생성.
  2. lambda를 사용하는 이유는?
    • 코드를 간결하게 작성.
    • 일회성으로 사용되는 익명 함수 작성 가능.
    • 함수형 프로그래밍에서 편리하게 콜백 함수로 사용.
    • 코드의 가독성을 높일 수 있음.
  3. lambda 함수를 작성하는 방법은?
lambda 매개변수: 반환값
# 예시
square = lambda x: x * x
print(square(3))  # 출력: 9

이 정리된 내용을 통해 람다 함수의 개념과 실전 활용법을 확실히 익히고, 실무에서도 깔끔하고 간결한 코드를 작성해 보세요! 🚀

 

📌 Python 함수 심화 – map(), filter(), lambda 정리


✅ 1. map() 함수의 기능

  • map() 함수는 리스트, 튜플 등 이터러블의 각 요소에 특정 함수를 적용하여 새로운 이터러블을 반환하는 함수입니다.
  • 모든 요소에 대해 동일한 작업을 반복해야 할 때 사용합니다.
def square(x):
    return x * x

numbers = [1, 2, 3, 4, 5]
result = map(square, numbers)

print(list(result))

출력 결과

[1, 4, 9, 16, 25]
  • map()은 numbers의 각 요소에 square() 함수를 적용하여 새로운 리스트를 만들어 반환합니다.
  • map()은 list()로 감싸야 실제 결과를 확인할 수 있습니다.

✅ 2. filter() 함수의 기능

  • filter() 함수는 주어진 함수의 조건을 만족하는 요소만 걸러서 반환합니다.
  • 조건을 만족하는 값만 선택하고 싶을 때 유용합니다.
def is_even(x):
    return x % 2 == 0

numbers = [1, 2, 3, 4, 5]
result = filter(is_even, numbers)

print(list(result))

출력 결과

[2, 4]
  • filter()는 is_even() 함수를 통해 짝수만 걸러서 반환합니다.
  • 마찬가지로 filter()도 list()로 감싸야 결과가 출력됩니다.

✅ 3. lambda를 사용하는 이유

  • lambda 함수는 **익명 함수(anonymous function)**를 작성할 때 사용됩니다.
  • 이름이 없는 간단한 함수를 한 줄로 작성할 때 사용됩니다.

❓ 왜 사용할까?

  • ✅ 코드를 간결하게 작성할 수 있습니다.
  • ✅ 한 번만 사용할 함수라면 굳이 def로 함수를 정의할 필요가 없습니다.
  • ✅ map(), filter()와 같은 함수에서 간단한 함수를 인자로 전달할 때 유용합니다.

✅ 4. lambda를 이용해 함수를 만드는 방법

  • 기본 문법
lambda 매개변수: 반환값
  • 예시 1: 단순 함수로 사용
square = lambda x: x * x
print(square(5))

출력 결과

25
  • lambda를 사용해서 square() 함수를 한 줄로 작성했습니다.

  • 예시 2: map()과 함께 사용
numbers = [1, 2, 3, 4, 5]
result = map(lambda x: x * x, numbers)
print(list(result))

출력 결과

[1, 4, 9, 16, 25]
  • lambda로 익명 함수를 작성해서 map()에 바로 전달했습니다.
  • 별도로 함수를 정의하지 않아도 되기 때문에 코드가 훨씬 간결해집니다.

  • 예시 3: filter()와 함께 사용
numbers = [1, 2, 3, 4, 5]
result = filter(lambda x: x % 2 == 0, numbers)
print(list(result))

출력 결과

[2, 4]
  • lambda로 짝수 조건을 정의하고, 이를 filter()에 바로 전달하여 짝수만 걸러냈습니다.

✅ 5. lambda와 def의 차이점

구분 lambda def 함수

형태 한 줄로 작성 여러 줄로 작성
용도 간단하고 짧은 익명 함수 복잡하고, 여러 동작이 필요한 함수 작성 시 사용
이름 이름이 없음 함수 이름을 명시함
리턴 자동으로 반환 return 키워드로 반환 필요

⚡️ 결론

  • map(): 모든 요소에 동일한 작업을 적용할 때 사용
  • filter(): 특정 조건을 만족하는 요소만 골라낼 때 사용
  • lambda: 간단한 함수를 한 줄로 작성할 때 사용 (특히 map(), filter()에 유용)

🚀 Tip!

  • 간단하고, 한 번만 사용할 함수라면 lambda로 빠르게 작성!
  • 코드가 길어지거나 복잡한 함수라면 def를 사용해 명확하게 작성! 😊

'Python' 카테고리의 다른 글

[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-12. 타입 어노테이션과 힌트  (0) 2025.03.13
[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-11. 제너레이터  (0) 2025.03.13
[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-9. 튜플  (0) 2025.03.13
[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-8. 조기 리턴 피보나치 수열  (0) 2025.03.13
[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-7. 재귀 함수  (0) 2025.03.13
'Python' 카테고리의 다른 글
  • [[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-12. 타입 어노테이션과 힌트
  • [[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-11. 제너레이터
  • [[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-9. 튜플
  • [[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-8. 조기 리턴 피보나치 수열
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (472) N
      • Python (31)
      • 프로젝트 (43)
      • 과제 (21)
      • Database (40)
      • 멘토링 (7) N
      • 특강 (18)
      • 기술블로그 (126) N
      • AI 분석 (4)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (34) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-10. 람다
상단으로

티스토리툴바