Day003 - 함수와 자료구조
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
Day003 - 함수와 자료구조
오늘 학습한 함수(Function), 람다(Lambda), 자료 구조(Data Structures) 그리고 코드의 가독성을 한 단계 올려 주는 컴프리헨션(Comprehension)까지 정리해 본다.
1. 함수(Function)
함수는 반복되는 코드를 재사용 가능하게 만드는 도구다. def 키워드를 사용해 정의하고, 매개변수(Parameter)로 값을 받아 return 으로 결과를 돌려 받는다.
![]() |
| 파이썬 함수 정의와 호출 흐름 |
- print vs return : print 는 결과를 화면에 보여주기만 하지만, return 은 값을 함수 밖으로 반환하여 재사용 가능한 형태로 만든다.
- 다중 반환: return a, b 처럼 여러 개의 값을 한 번에 반환할 수 있으며, 이 반환 값은 튜플(Tuple) 형식을 갖고 있다.
- 변수 스코프: 함수 내부에서 선언된 변수는 지역변수, 외부에서 선언된 변수는 전역 변수(global) 이다.
# 함수 정의 및 다중 반환 예시
def min_max(a, b, c):
"""최솟값과 최댓값을 구하여 튜플로 반환"""[cite: 1]
return min(a, b, c), max(a, b, c)[cite: 1]
smallest, largest = min_max(7, 2, 9)[cite: 1]
print(f"최소: {smallest}, 최대: {largest}")[cite: 1]2. 자료구조(Data Structures)
데이터의 특성에 맞춰 올바른 구조(자료구조)를 선택하는 법을 학습한다.
![]() |
| 자료 구조 비교 요약 |
(1) 리스트(List) & 튜플(Tuple)
- 리스트 [ ] : 순서가 존재하며, 요소를 변경 & 수정할 수 있는 가변(Mutable) 구조이다.
- 튜플 ( ) : 순서는 있지만, 한 번 생성되면 수정이 불가능한 불변(Immutable) 구조이다.
(2) 딕셔너리(Dict) & 집합(Set)
- 딕셔너리 {Key : Value} : 이름표(Key)를 활용해 값을 빠르게 조회할 수 있어 API 데이터(JSON) 처리에 자주 활용 된다.
- 집합 { } : 중복을 허용하지 않고 순서가 없다. 데이터 중복 제거에 효율적이다.
# enumerate와 zip을 활용한 유용한 순회
names = ["지민", "하늘", "바다"][cite: 2]
scores = [90, 85, 95][cite: 2]
# zip으로 두 리스트를 묶어서 출력
for name, score in zip(names, scores):[cite: 2]
print(f"{name}: {score}점")[cite: 2]3. 컴프리헨션(Comprehension)
반복문(for)과 조건문(if)을 단 한 줄로 압축하여 새 리스트(List)나 딕셔너리(Dictionary)를 가공하는 Python 고유의 직관적인 문법이다.
![]() |
| 리스트 컴프리헨션 문법 구조 |
# 1~10 중 짝수만 골라 제곱하는 리스트 컴프리헨션 squares = [n * n for n in range(1, 11) if n % 2 == 0][cite: 2] print(squares) # [4, 16, 36, 64, 100]
4. 람다 함수(Lambda Function)
![]() |
| 람다 함수(lambda Function)와 sorted 함수 동작 방식 |
# 딕셔너리 리스트를 점수 기준으로 내림차순 정렬
students = [
{"이름": "지민", "점수": 85},[cite: 2]
{"이름": "하늘", "점수": 92},[cite: 2]
{"이름": "바다", "점수": 78}[cite: 2]
]
# lambda 함수를 정렬 기준(key)으로 사용
by_score = sorted(students, key=lambda s: s["점수"], reverse=True)[cite: 2]
print(by_score)단순히 Python 문법을 외우는 것을 넘어 "어떻게 효율적이고 깔끔한 코드를 작성할 것인가?"에 대해 깊이 고민해 보는 시간이었다. 어제까지 구현 했던 장바구니나 계산기 프로그램을 함수 단위로 분리하고 리팩토링 하면서 코드의 구조화와 재사용성이 얼마나 중요한지 체감 했다.
특히, 딕셔너리와 리스트 컴프리헨션, 람다 함수가 결합되어 복잡한 데이터 컬렉션을 단 한 두 줄로 깔끔하게 가공하는 방식이 놀라웠다. 익숙해 지기 전까지는 컴프리헨션 구문이 생소하겠지만, 손에 익는다면 앞으로 다루게 될 AI데이터 분석 프로젝트에서 큰 무기가 될 것 같다.
- 공유 링크 만들기
- X
- 이메일
- 기타 앱

%20%EB%B9%84%EA%B5%90%20%EC%9A%94%EC%95%BD.png)


댓글
댓글 쓰기