안녕하세요:) 이번 포스팅에서는 Python의 내장 함수Built−inFunctions와 익명 함수lambda에 대해 알아보겠습니다. 이 글은 Python 공식 문서를 참고하여 작성하였습니다.
실습 링크
https://github.com/jjangmo91/ParkLab/blob/main/Python/04_Built_in_Fuctions_%26_lambda.ipynb
ParkLab/Python/04_Built_in_Fuctions_&_lambda.ipynb at main · jjangmo91/ParkLab
Contribute to jjangmo91/ParkLab development by creating an account on GitHub.
github.com
내장 함수Built−inFunctions
지난 시간에 학습한 함수Function는 def 키워드를 사용해 사용자가 직접 정의하는 코드 블록이었습니다. 반면에 내장 함수는 Python 언어 자체가 기본으로 제공하는 함수로, Python 인터프리터가 시작될 때 이미 메모리에 로드되어 있어서, 별도의 정의def나 import 없이 곧바로 사용할 수 있는 함수들입니다.
Python 내장 함수의 전체 목록과 쓰임새는 아래 공식문서 링크에서 확인할 수 있습니다.
https://docs.python.org/3/library/functions.html
Built-in Functions
The Python interpreter has a number of functions and types built into it that are always available. They are listed here in alphabetical order.,,,, Built-in Functions,,, A, abs, aiter, all, a...
docs.python.org

내장 함수 사용 예제
Python 내장 함수를 활용해 가상의 생태 관찰 데이터로부터 개체 밀도를 계산해 보겠습니다.
아래는 네 개의 관찰 구역에서 얻은 개체 수와, 대응하는 각 구역의 서식지 면적입니다.
# 예시 데이터
species_counts = [23, 45, 12, 38] # 관찰 개체 수
habitat_areas = [2.5, 3.1, 1.8, 4.0] # 서식지 면적(km²)
두 리스트는 같은 인덱스의 값들이 한 쌍pair을 이루므로, 이를 처리하기 위해 zip, map, list 세 가지 내장 함수를 차례로 사용합니다. 먼저 본격적인 계산에 앞서 각 함수가 어떤 역할을 하는지 간단히 살펴보겠습니다.
- zipiter1,iter2,... : 여러 시퀀스의 동일한 위치 요소를 튜플로 묶어 주는 함수입니다.
list(zip([1,2], [3,4])) # [(1, 3), (2, 4)]
- mapfunction,iterable : iterable의 각 요소에 function을 적용한 결과를 차례로 반환하는 iteration을 만듭니다.
list(map(lambda x: x*2, [1,2,3])) # [2, 4, 6]
- listiterable : iteratorzip,map,filter등를 실제 리스트로 변환합니다.
it = map(lambda x: x+1, [1,2,3])
print(list(it)) # [2, 3, 4]
- lambda : 한 줄에 짧은 함수를 정의할 때 사용하는 익명 함수anonymousfunction 생생 키워드입니다.
# lambda 매개변수: 표현식
add = lambda x, y: x + y
print(add(2, 3)) # 5
이제 위의 내장함수와 익명함수lambda를 결합해 개체밀도를 계산하는 코드를 짜보겠습니다.
# zip + map: 개체밀도 계산
densities = list(
map(
lambda x_y: x_y[0] / x_y[1], # (count, area) 튜플에서 count/area 연산
zip(species_counts, habitat_areas) # [(23,2.5), (45,3.1), ...] 튜플 시퀀스 생성
)
)
print("개체밀도:", densities)
다음은 filter 함수를 이용해, 앞서 계산한 densities 리스트에서 밀도가 10 이상인 값만 골라내는 예제입니다. lambda를 판별 함수로 사용하여 입력값 d가 10 이상이면 True, 그렇지 않으면 False를 반환합니다. filterfunction,iterable은 iterable 각 요소에 function을 적용해 True를 반환한 요소만 모아 iterator를 생성합니다.
# filter: 밀도가 10 이상인 값만 추출
high_density = list(filter(lambda d: d >= 10, densities))
print("밀도 ≥ 10:", high_density)
다음은 sorted 함수를 사용해, densities 리스트를 내림차순으로 정렬하고 결과를 출력하는 예제입니다.
# sorted: 내림차순으로 정렬하기
sorted_densities = sorted(densities, reverse=True)
print("내림차순 개체밀도:", [f"{d:.2f}" for d in sorted_densities])
내장 함수의 구현 코드를 보려면 CPython 소스 저장소를 살펴보시면 됩니다.
https://github.com/python/cpython/blob/main/Python/bltinmodule.c
cpython/Python/bltinmodule.c at main · python/cpython
The Python programming language. Contribute to python/cpython development by creating an account on GitHub.
github.com
'Development' 카테고리의 다른 글
Python 시작하기 #5 : 객체, 클래스, 인스턴스 0 | 2025.05.29 |
---|---|
Python 시작하기 #4 : 모듈, 패키지, 라이브러리 0 | 2025.05.08 |
Python 시작하기 #2 : 함수와 입출력 0 | 2025.04.10 |
Python 시작하기 #1 : 제어문 0 | 2025.03.27 |
Python 시작하기 #0 : 변수와 자료형 0 | 2025.03.13 |