강의노트 특수함수

조회수 664 • 댓글 0 • 수정 2주 전 크게 보기  
  • 함수
  • 함수

특수 함수

lambda( )

한 줄로 간단한 함수를 작성하는 데 사용되는 익명 함수입니다. lambda 함수는 일반적인 함수와 달리 함수 이름이 없습니다.

형식

# lambda 인자 : 반환식

인자는 함수의 매개변수를 나타내고, 반환식은 함수의 반환 값입니다. 인수를 세 제곱하는 익명 함수입니다. 이 함수는 다음과 같이 호출할 수 있습니다.

g = lambda x: x**3
print(g(4))
# 64
print(g(3))
# 27

lambda 함수는 보통 filter(), map()과 함께 사용됩니다. 이러한 함수는 함수를 인수로 받아서 반복 가능한 객체 (예 : 리스트)의 모든 요소에 대해 함수를 적용합니다.

filter()

filter( ) 함수는 조건에 맞는 값들을 추려내는 함수

#filter(lambda x : 조건식, 대상 숫자)

numbers = [1, 2, 3, 4, 5]
filtered_numbers = filter(lambda x: x % 2 == 0, numbers)
list(filtered_numbers)
# [2, 4]
filtered_numbers = filter(lambda x: x < 3, numbers)
list(filtered_numbers)
# [1, 2]

위의 예제에서 filter() 함수는 numbers 리스트의 모든 요소에 대해 lambda 함수를 호출하고, 반환 값이 True인 요소만 필터링합니다. 이 경우에는 짝수만 필터링됩니다.

map(function, iterable)

반복 가능한(iterable) 객체의 모든 요소에 대해 함수를 적용한 결과를 반환하는 내장 함수입니다. map() 함수는 map 객체를 반환하며, 이 객체는 일반적으로 리스트(list) 또는 튜플(tuple)과 같은 반복 가능한 객체로 변환됩니다.

map() 함수의 기본 구문은 다음과 같습니다.

map(function, iterable, ...)

위의 구문에서 function은 적용할 함수, iterable은 함수를 적용할 요소들이 있는 반복 가능한 객체입니다. map() 함수는 모든 iterable에 대해서 function을 적용합니다. 만약에 더 이상 적용할 iterable이 없으면 더 이상의 결과가 생성되지 않습니다.

예를 들어, map() 함수를 사용하여 리스트의 모든 요소에 대해 제곱을 계산하는 방법은 다음과 같습니다.

numbers = [1, 2, 3, 4, 5]
squared_numbers = map(lambda x: x**2, numbers)
list(squared_numbers)
# [1, 4, 9, 16, 25]
cubic_number = map(lambda x:x**3+1, numbers)
list(cubic_number)
# [2, 9, 28, 65, 126]

위의 예제에서 map() 함수는 numbers 리스트의 모든 요소에 대해 lambda 함수를 호출하고, 반환 값을 새로운 리스트에 추가합니다. 따라서 squared_numbers 리스트에는 numbers 리스트의 각 요소의 제곱 값이 저장됩니다.

map() 함수는 이러한 방식으로 입력 iterable에 대해 주어진 함수를 적용하여 결과 iterable을 생성합니다. 결과 iterable은 입력 iterable의 요소 수와 동일한 순서로 처리된 요소를 가집니다.

function을 시퀀스나 다른 반복 가능 객체인 iterable의 각 아이템에 적용하고 개별적인 결과를 반환

def f1(x):
   return x**2+x
print(list(map(f1,[3,4,5])))
# [12, 20, 30]
print(list(map(f1,[1,2])))
# [2, 6]
이전 글
다음 글
댓글
댓글로 소통하세요.