[SK네트웍스 패밀리 엔코어AI캠퍼스] AI 머신러닝 캠프 1기_7월 4주차 회고

[SK네트웍스 패밀리 엔코어AI캠퍼스] AI 머신러닝 캠프 1기_7월 4주차 회고 엔코아 AI 캠퍼스에서 첫 주는 Orientation과 하루 일정의 교육이 이루어 지다 보니, 이번 주가 본격적인 첫 주라고 봐야 할 것 같다. 정말 시간이 눈 깜짝할 사이에 지났다. 이번 주는 AI 개발자의 가장 기본이 되는 Python Programming 능력을 다지고, 실제 데이터 분석 의 핵심인 데이터 수집과 전처리 기술을 습득하는 매우 중요한 시간이었다. Python의 핵심 문법부터 라이브러리를 활용한 실무 기술까지, 적지 않은 양을 학습했고, 학습한 것들을 정리해 본다. 1. Python Programming 문법 가장 먼저 프로그래밍의 기초가 되는 변수와 제어문을 시작으로 코드의 재사용성을 높여주는 함수와 복잡한 데이터를 효율적으로 다루기 위한 자료구조를 학습했다. (1) Python 핵심 문법 정리 - 제어문 : if, for, while 등 조건에 따른 흐름 제어 및 반복 작업 수행 - 자료구조 : 리스트(List), 튜플(Tuple), 딕셔너리(Dictionary), 세트(Set) 등 데이터 특성에 맞는 저장 및 관리 - 함수(Function) : 코드의 논리적 단위 분리, 매개변수와 반환 값을 활용한 코드 재사용성 극대화 # 자료구조와 함수 활용 예시 def process_data(data_list): result = {} for item in data_list: if item not in result: result[item] = 1 else: result[item] += 1 return result data = ['apple', 'banana', 'apple', 'orange', 'banana'] count_result = process_data(data) print(count_re...

Day003 - 함수와 자료구조

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 는 이름 없이 한 줄로 간결하게 작성하는 익명 함수이다. 복잡한 로직을 작성하기보다, 특히 sorted() key 인자(Arguments)map(), filter() 함수의 보조 도구로 강력한 성능을 발휘한다.
람다 함수(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데이터 분석 프로젝트에서 큰 무기가 될 것 같다.


#python #function #comprehension #DataStructures #lambda #list #dictionary #tuple #parameter #arguments #set #TIL


댓글

이 블로그의 인기 게시물

[SK네트웍스 family 엔코아AI캠퍼스] 나의 목표는 머신러닝 엔지니어다.

[SK네트웍스 패밀리 엔코어AI캠퍼스] AI 머신러닝 캠프 1기_7월 3주차 회고

[SK네트웍스 패밀리 엔코어AI캠퍼스] AI 머신러닝 캠프 1기_7월 4주차 회고