PYTHON#LAMBDA

codataffee·2024년 5월 10일
0

PYTHON

목록 보기
16/40
post-thumbnail

개요

기존에 람다 함수에 대한 학습은 했었지만
알고리즘 문제를 푸는 도중 sort()함수와 함께 정렬 기준에 대한 key 값을
lambda 함수를 사용해 여러 조건을 나열하는 것을 보고,
제대로 정리를 해보려고 한다.


📌 lambda

람다(lambda) 


📌 형식

lambda 키워드 다음에 함수에 전달할 매개변수들을 콤마로 구분하여 나열

  • 매개 변수가 없는 경우 빈 칸
  • 콜론(:) 다음에 매개변수들을 이용해 계산하거나 반환할 표현식을 작성
  • 표현식은 반드시 한 줄로 작성해야하고, return 키워드 사용하지 않음
  • lambda : 람다 함수를 정의하기 위한 키워드
  • arguments : 함수의 인자(매개변수)를 나타내는 부분, 여러 개의 인자를 콤마로 구분 가능
  • expression : 함수가 수행할 연산 또는 표현식을 나타내는 부분, 결과가 람다 함수의 반환 값
lambda (arguments) : (expression)
-> lambda 매개변수들 : 표현식

📌 사용 예시

  • 간단한 연산

add = lambda x, y: x + y
subtract = lambda x, y: x - y
multiply = lambda x, y: x * y
divide = lambda x, y: x / y
result1 = add(5, 3)
result2 = subtract(10, 4)
result3 = multiply(6, 7)
result4 = divide(9, 3)
print (result1)
print (result2)
print (result3)
print (result4)
  • sorted() 함수와 함께 리스트 요소 정렬

students = [
    {"name": "Alice", "age": 25},
    {"name": "Bob", "age": 22},
    {"name": "Charlie", "age": 28}
    ]
sorted_students = sorted(students, key=lambda student: student["age"])
print(sorted_students)
  • map() 함수와 함께 리스트 요소 변환

numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x**2, numbers))
print(squared_numbers)
  • filter() 함수와 함께 조건에 맞는 요소 필터링

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)

📌 주의 사항

  1. 람다 함수는 한 줄의 표현식으로 작성해야 하기 때문에,
    복잡한 로직이나 조건문, 반복문 등을 사용할 수 없다.

    • 이 경우에는 일반적인 def 키워드를 사용하여 함수를 정의하는 것이 좋음!
  2. 람다 함수는 이름이 없어 디버깅이 어렵다.

  3. 람다 함수를 여러 번 사용하거나 재사용하기 위해서는,
    변수에 할당하거나 다른 함수로 정의해야 한다.

  4. 람다 함수는 가독성을 높이기 위해 적절하게 사용해야 한다.
    람다 함수를 남용하거나 복잡하게 사용하게 되면, 코드의 이해도가 떨어진다.


profile
커피 좋아하는 데이터 꿈나무

0개의 댓글

관련 채용 정보