iterable 이란?
Python에서 iterable은 for 루프로 반복할 수 있는 모든 객체입니다. 반복 가능 항목의 예로는 목록, 튜플, 집합, 문자열 및 사전이 있습니다.
for 루프를 사용하여 iterable을 반복할 때 루프는 모든 요소가 처리될 때까지 iterable의 각 요소를 하나씩 자동으로 통과합니다. 요소가 처리되는 순서는 iterable 유형에 따라 달라질 수 있습니다.
Iterables는 유연하고 효율적인 방식으로 데이터 컬렉션으로 작업할 수 있기 때문에 Python에서 중요합니다. iterable을 반복하면 컬렉션의 정확한 크기나 콘텐츠를 미리 알 필요 없이 컬렉션의 각 요소에 대한 작업을 수행할 수 있습니다.
Iterable은 다양한 Python 객체를 사용하여 만들 수 있으며 map(), filter() 및 reduce()와 같은 함수를 사용하여 기존 Iterable에서 새 Iterable을 만들 수 있습니다. iterable을 이해하고 이를 사용하는 방법은 Python을 배우는 모든 사람에게 필수적인 기술입니다.
람다함수란?
익명 함수라고도 하는 람다 함수는 Python에서 정의하고 사용할 수 있는 이름이 없는 작은 한 줄 함수입니다. Lambda 함수는 프로그램에서 한 번만 사용되는 간단한 함수의 바로 가기로 자주 사용됩니다.
다음은 두 개의 숫자를 더하는 람다 함수의 예입니다.
add = lambda x, y: x + y
print(add(2, 3))
Output:
5
이 예제에서는 두 개의 인수 x와 y를 사용하고 그 합계를 반환하는 람다 함수 add를 정의합니다. 그런 다음 값 2와 3으로 함수를 호출하고 결과를 출력합니다.
Lambda 함수는 map(), filter() 및 reduce() 함수와 같이 일반 함수가 사용되는 모든 곳에서 사용할 수 있습니다. 특정 속성을 기준으로 개체를 정렬하는 데 사용할 수도 있습니다.
다음은 Python에서 map(), filter() 및 reduce()와 함께 람다 함수를 사용하는 몇 가지 예입니다.
map()과 함께 람다 사용하기
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x**2, numbers))
print(squared_numbers)
Output:
[1, 4, 9, 16, 25]
이 예제에서는 람다 함수와 함께 map()을 사용하여 숫자 목록의 각 요소를 제곱합니다. 람다 함수는 하나의 인수 x를 사용하고 x**2를 반환합니다. 그런 다음 list()를 사용하여 map() 객체를 목록으로 변환하고 출력합니다.
filter()와 함께 람다 사용
numbers = [1, 2, 3, 4, 5]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)
Output:
[2, 4]
이 예에서는 람다 함수와 함께 filter()를 사용하여 숫자 목록에서 짝수만 유지합니다. 람다 함수는 하나의 인수 x를 사용하고 x가 짝수(x % 2 == 0)이면 True를 반환합니다. 그런 다음 list()를 사용하여 filter() 객체를 목록으로 변환하고 출력합니다.
reduce()와 함께 람다 사용
from functools import reduce
numbers = [1, 2, 3, 4, 5]
product = reduce(lambda x, y: x * y, numbers)
print(product)
Output:
120
이 예제에서는 람다 함수와 함께 reduce()를 사용하여 숫자 목록에 있는 모든 숫자의 곱을 계산합니다. 람다 함수는 두 개의 인수 x와 y를 사용하고 해당 제품 x * y를 반환합니다. 그런 다음 functools 모듈에서 reduce() 함수를 가져와 숫자 목록에 적용하고 결과를 제품 변수에 저장하고 출력합니다.
이 예제는 람다 함수를 사용하여 map(), filter() 및 reduce()와 함께 사용할 간단한 인라인 함수를 만드는 방법을 보여줍니다.
Lambda 함수는 많은 코드가 필요하지 않은 빠르고 간단한 함수를 작성하는 데 유용합니다. 그러나 너무 복잡하거나 보다 설명적인 함수 이름 대신 사용되는 경우 읽고 이해하기 어려울 수 있습니다.
'파이썬' 카테고리의 다른 글
시간 복잡도, 빅오(Big O) 표기법 이란? (0) | 2023.03.20 |
---|---|
[Python]#26 파이썬 간단한 TIP&요령 (0) | 2023.03.19 |
[Python]#24 내장 함수 reduce() (0) | 2023.03.16 |
[Python]#23 특정 기준 충족하는 모든 개체 filter() (0) | 2023.03.14 |
[Python]#22 map() (0) | 2023.03.13 |